@datagrok/peptides 1.17.0 → 1.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +17 -6
- package/CHANGELOG.md +4 -0
- package/dist/214.js +2 -0
- package/dist/436.js +2 -2
- package/dist/802.js +2 -0
- package/dist/package-test.js +2 -3
- package/dist/package.js +2 -3
- package/package.json +14 -14
- package/src/demo/fasta.ts +8 -2
- package/src/model.ts +783 -532
- package/src/package-test.ts +1 -3
- package/src/package.ts +15 -28
- package/src/tests/benchmarks.ts +31 -11
- package/src/tests/core.ts +11 -6
- package/src/tests/misc.ts +6 -6
- package/src/tests/model.ts +79 -44
- package/src/tests/table-view.ts +48 -38
- package/src/tests/utils.ts +0 -76
- package/src/tests/viewers.ts +30 -12
- package/src/tests/widgets.ts +30 -11
- package/src/utils/algorithms.ts +115 -38
- package/src/utils/cell-renderer.ts +181 -72
- package/src/utils/constants.ts +33 -7
- package/src/utils/misc.ts +244 -10
- package/src/utils/parallel-mutation-cliffs.ts +18 -15
- package/src/utils/statistics.ts +70 -15
- package/src/utils/tooltips.ts +42 -17
- package/src/utils/types.ts +29 -26
- package/src/utils/worker-creator.ts +5 -0
- package/src/viewers/logo-summary.ts +591 -130
- package/src/viewers/sar-viewer.ts +893 -239
- package/src/widgets/distribution.ts +305 -64
- package/src/widgets/manual-alignment.ts +18 -11
- package/src/widgets/mutation-cliffs.ts +44 -18
- package/src/widgets/peptides.ts +86 -91
- package/src/widgets/selection.ts +56 -22
- package/src/widgets/settings.ts +94 -44
- package/src/workers/mutation-cliffs-worker.ts +3 -16
- package/dist/209.js +0 -2
- package/dist/361.js +0 -2
- package/dist/381.js +0 -2
- package/dist/770.js +0 -2
- package/dist/831.js +0 -2
- package/dist/868.js +0 -2
- package/dist/931.js +0 -3
- package/dist/931.js.LICENSE.txt +0 -51
- package/dist/932.js +0 -2
- package/dist/package-test.js.LICENSE.txt +0 -51
- package/dist/package.js.LICENSE.txt +0 -51
- package/src/tests/peptide-space-test.ts +0 -48
- package/src/tests/test-data.ts +0 -649
- package/src/utils/molecular-measure.ts +0 -174
- package/src/utils/peptide-similarity-space.ts +0 -216
- package/src/viewers/peptide-space-viewer.ts +0 -150
- package/src/workers/dimensionality-reducer.ts +0 -25
package/dist/931.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 931.js.LICENSE.txt */
|
|
2
|
-
var peptides;(()=>{"use strict";var t,e,r={9931:(t,e,r)=>{var s=r(7659);class n extends Float32Array{}function o(t){return Math.random()*t}function i(t){return Math.floor(o(t))}function h(t=!1,e="Assertion error."){if(!t)throw new Error(e)}function a(t,e,r=1){const s=t.length;h(s==e.length,"Vector lengths do not match.");const o=new n(s);for(let s=0;s<t.length;++s)o[s]=t[s]+r*e[s];return o}function l(t,e,r=1){const s=function(t,e,r=0){return new Array(t).fill(r).map((()=>new n(e).fill(r)))}(t,e);for(let n=0;n<t;++n)for(let t=0;t<e;++t)s[n][t]=o(r);return s}function u(t,e){let r=0;const s=t.length;if(s!==e.length)throw new Error("The dimensionality of the vectors must match");for(let n=0;n<s;++n)r+=Math.pow(t[n]-e[n],2);return Math.sqrt(r)}function c(t){return(e,r)=>t*e+r-Math.floor((e+2)*(e+1)/2)}class f{constructor(t=!0,e=!0){const s=navigator.hardwareConcurrency;this._workerCount=t?Math.max(s-2,1):1,this._workers=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(r.p+r.u(868),r.b)))),this._terminateOnComplete=e}async calc(t,e,r=!0,s){return new Promise((async(n,o)=>{try{const o=t.length,i=new Array(this._workerCount),h=o*(o-1)/2;this._workerCount=Math.min(this._workerCount,h);const a=h/this._workerCount,l=new Float32Array(h);let u=0,c=1,f=0,m=Number.MIN_VALUE;for(let r=0;r<this._workerCount;r++){const n=Math.floor(r*a),g=r===this._workerCount-1?h:Math.floor((r+1)*a),p=u,d=c;r!==this._workerCount-1&&(u=o-2-Math.floor(Math.sqrt(-8*g+4*o*(o-1)-7)/2-.5),c=g-o*u+Math.floor((u+1)*(u+2)/2)),this._workers[r].postMessage({values:t,fnName:e,startRow:p,startCol:d,chunckSize:g-n,opts:s}),i[r]=new Promise(((t,e)=>{this._workers[r].onmessage=({data:{error:s,distanceMatrixData:o,min:i,max:h}})=>{this._terminateOnComplete&&this._workers[r].terminate(),s?e(s):(l.set(o,n),i<f&&(f=i),h>m&&(m=h),t())}}))}await Promise.all(i),r&&l.forEach(((t,e)=>{l[e]=(t-f)/(m-f)})),n(l)}catch(t){o(t)}}))}terminate(){this._workers.forEach((t=>t.terminate()))}}class m{constructor(t){this.steps=t?.steps??0,this.cycles=t?.cycles??1e6,this.cutoff=t?.cutoff??0,this.lambda=t?.lambda??2,this.dlambda=t?.dlambda??.01,this.lambda2=this.lambda/2,this.dlambda2=this.dlambda/2,this.epsilon=t?.epsilon??1e-10,this.distanceFunction=t?.distance??u,this.distance=new Float32Array,this.distanceFunctionName=t?.distanceFunctionName}async initDistance(t){this.dmIndexFunct=c(t.length);const e=new f(!0,!1);this.distance=await e.calc(t,this.distanceFunctionName),e.terminate()}calcDistance(t,e,r){return this.distance[this.dmIndexFunct(e,r)]}async embed(t){const e=t.length,r=l(e,m.dimension,40);let s=this.lambda2;0===this.steps&&(this.steps=t.length-1),await this.initDistance(t);for(let n=0;n<this.cycles;++n){for(let n=0;n<this.steps;++n){const n=i(e);let o=i(e);for(;n==o;)o=i(e);const h=r[n],l=r[o],c=this.calcDistance(t,n,o),f=u(h,l);if(0==this.cutoff||c<=this.cutoff||f<c){const t=s*(c-f)/(f+this.epsilon),e=a(h,l,-1);r[n]=a(h,e,t),r[o]=a(l,e,-t)}}if(s-=this.dlambda2,s<=0)break}return r}}m.dimension=2;class g extends m{async embed(t){const e=t.length,r=l(e,g.dimension,40);let s=this.lambda;await this.initDistance(t);for(let n=0;n<this.cycles;++n){const n=i(e),o=r[n];for(let i=0;i<e;++i){if(n==i)continue;const e=r[i],h=this.calcDistance(t,n,i),l=u(o,e);if(0==this.cutoff||h<=this.cutoff||l<h){const t=s*(h-l)/(l+this.epsilon),n=a(o,e,-1);r[i]=a(e,n,-t)}}if(s-=this.dlambda,s<=0)break}return r}}class p extends m{constructor(t){super(t),this.cycles=t?.cycles??1e3,this.steps=t?.steps??1e5,this.radiusPercent=t?.radiusPercent??1,this.maxDistance=t?.maxDistance??null,this.maxDistanceSteps=t?.maxDistanceSteps??null}async embed(t){const e=t.length,r=l(e,p.dimension,40);if(await this.initDistance(t),null===this.maxDistanceSteps&&(this.maxDistanceSteps=e*Math.floor((e-1)/2)),null===this.maxDistance){this.maxDistance=-1e37;for(let r=0;r<this.maxDistanceSteps;r++){const r=i(e);let s=i(e);for(;r==s;)s=i(e);const n=this.calcDistance(t,r,s);n>this.maxDistance&&(this.maxDistance=n)}}let s=this.lambda;const n=0==this.radiusPercent?this.maxDistance:this.maxDistance*this.radiusPercent;for(let o=0;o<this.cycles;++o){for(let o=0;o<this.steps;++o){const o=i(e);let h=i(e);for(;o==h;)h=i(e);const l=r[o],c=r[h],f=this.calcDistance(t,o,h),m=u(l,c);if(f<=n||m<f){const t=.5*s*(f-m)/(m+this.epsilon),e=a(l,c,-1);r[o]=a(l,e,t),r[h]=a(c,e,-t)}}if(s-=(this.lambda-this.dlambda)/(this.cycles-1),s<this.dlambda)break}return r}}var d,w,y,b,M,x,E=r(1811),S=r(3979),v=r(9657);!function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan"}(d||(d={})),function(t){t.Euclidean="Euclidean"}(w||(w={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean"}(y||(y={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(b||(b={})),function(t){t.Vector="Vector",t.String="String",t.BitArray="BitArray",t.MacroMolecule="MacroMolecule",t.Number="Number",t.IntArray="IntArray"}(M||(M={})),function(t){t.NumericDistance="NumericDistance"}(x||(x={}));var N=r(708);function k(t,e){const r=t.trueCount()+e.trueCount();if(0==r)return 1;const s=t.andWithCountBits(e,!0);return s/(r-s)}function C(t){return 0===t?3402823e32:1/t-1}y.Tanimoto,y.Dice,y.Asymmetric,y.BraunBlanquet,y.Cosine,y.Kulczynski,y.McConnaughey,y.RogotGoldberg,y.Russel,y.Sokal,y.Hamming,y.Euclidean,y.Tanimoto,y.Dice,y.Asymmetric,y.BraunBlanquet,y.Cosine,y.Kulczynski,y.McConnaughey,y.RogotGoldberg,y.Russel,y.Sokal,y.Hamming,y.Euclidean,y.Tanimoto,y.Dice,y.Cosine,y.Tanimoto,y.Asymmetric,y.Cosine,y.Sokal,N.U.HAMMING,N.U.LEVENSHTEIN,N.U.MONOMER_CHEMICAL_DISTANCE;const A={[w.Euclidean]:u},R={[d.Levenshtein]:E.T,[d.JaroWinkler]:S.H$,[d.Manhattan]:function(t,e){if(t.length!==e.length)return 1;{let r=0;for(let s=1;s<t.length;s++)r+=t[s]==e[s]?0:1;return r/t.length}}},F={[y.Tanimoto]:function(t,e){return C(k(t,e))},[y.Dice]:function(t,e){return C(function(t,e){const r=t.trueCount()+e.trueCount();return 0==r?0:2*t.andWithCountBits(e,!0)/r}(t,e))},[y.Asymmetric]:function(t,e){return C(function(t,e){const r=Math.min(t.trueCount(),e.trueCount());return 0==r?0:t.andWithCountBits(e,!0)/r}(t,e))},[y.BraunBlanquet]:function(t,e){return C(function(t,e){const r=Math.max(t.trueCount(),e.trueCount());return 0==r?0:t.andWithCountBits(e,!0)/r}(t,e))},[y.Cosine]:function(t,e){return C(function(t,e){const r=t.trueCount()*e.trueCount();return 0==r?0:t.andWithCountBits(e,!0)/Math.sqrt(r)}(t,e))},[y.Kulczynski]:function(t,e){return C(function(t,e){const r=t.trueCount()+e.trueCount(),s=t.trueCount()*e.trueCount();return 0==s?0:t.andWithCountBits(e,!0)*r/(2*s)}(t,e))},[y.McConnaughey]:function(t,e){return C(function(t,e){const r=t.trueCount()+e.trueCount(),s=t.trueCount()*e.trueCount();return 0==s?0:(t.andWithCountBits(e,!0)*r-s)/s}(t,e))},[y.RogotGoldberg]:function(t,e){return C(function(t,e){const r=t.andWithCountBits(e,!0),s=t.countBits(!0)+e.countBits(!0),n=t.length,o=n-s+r;return r==n||o==n?1:r/s+o/(2*n-s)}(t,e))},[y.Russel]:function(t,e){return C(function(t,e){return 0==t.length?0:t.andWithCountBits(e,!0)/t.length}(t,e))},[y.Sokal]:function(t,e){return C(function(t,e){const r=t.trueCount()+e.trueCount(),s=t.andWithCountBits(e,!0);return s/(2*r-3*s)}(t,e))},[y.Hamming]:function(t,e){return t.trueCount()+e.trueCount()-2*t.andWithCountBits(e,!0)},[y.Euclidean]:function(t,e){return Math.sqrt(t.trueCount()+e.trueCount()-2*t.andWithCountBits(e,!0))}},I={[b.TanimotoIntArray]:function(t,e){return C(k(new v.Z(t,32*t.length),new v.Z(e,32*e.length)))}},z={[x.NumericDistance]:function(t,e){return Math.abs(t-e)}},T={[M.Vector]:{[w.Euclidean]:A[w.Euclidean]},[M.String]:{[d.Levenshtein]:R[d.Levenshtein],[d.JaroWinkler]:R[d.JaroWinkler],[d.Manhattan]:R[d.Manhattan]},[M.BitArray]:{[y.Tanimoto]:F[y.Tanimoto],[y.Dice]:F[y.Dice],[y.Asymmetric]:F[y.Asymmetric],[y.BraunBlanquet]:F[y.BraunBlanquet],[y.Cosine]:F[y.Cosine],[y.Kulczynski]:F[y.Kulczynski],[y.McConnaughey]:F[y.McConnaughey],[y.RogotGoldberg]:F[y.RogotGoldberg],[y.Russel]:F[y.Russel],[y.Sokal]:F[y.Sokal]},[M.MacroMolecule]:{[N.U.HAMMING]:N.o[N.U.HAMMING],[N.U.LEVENSHTEIN]:N.o[N.U.LEVENSHTEIN],[N.U.NEEDLEMANN_WUNSCH]:N.o[N.U.NEEDLEMANN_WUNSCH],[N.U.MONOMER_CHEMICAL_DISTANCE]:N.o[N.U.MONOMER_CHEMICAL_DISTANCE]},[M.Number]:{[x.NumericDistance]:z[x.NumericDistance]},[M.IntArray]:{[b.TanimotoIntArray]:I[b.TanimotoIntArray]}},_=Object.keys(T).reduce(((t,e)=>{for(const r of Object.keys(T[e]))t[r]=e;return t}),{});function D(t){return"BitArray"==_[t]}class P{constructor(t){this.method=t,this.dataType=_[t]}getMeasure(t){const e=T;if(!e.hasOwnProperty(this.dataType)||!e[this.dataType].hasOwnProperty(this.method))throw new Error(`Unknown measure ${this.method} for data type ${this.dataType}`);return r=this.method,_[r]==M.MacroMolecule.toString()?e[this.dataType][this.method](t):e[this.dataType][this.method];var r}static getMetricByDataType(t){return Object.keys(T[t])}static get availableMeasures(){return Object.keys(T)}}function V(t,e){return Math.floor(e()*t)}function O(t){return t()}function j(t){const e=[];for(let r=0;r<t;r++)e.push(void 0);return e}function q(t){return j(t).map(((t,e)=>e))}function L(t,e){return j(t).map((()=>e))}function $(t){return L(t,0)}function B(t){return function(t){return t.reduce(((t,e)=>t+e))}(t)/t.length}function W(t){let e=0;for(let r=0;r<t.length;r++)e=t[r]>e?t[r]:e;return e}function U(t,e,r){const s=$(t);for(let n=0;n<t;n++){let t=!0;for(;t;){const o=V(e,r);let i=!1;for(let t=0;t<n;t++)if(o===s[t]){i=!0;break}i||(t=!1),s[n]=o}}return s}function G(t,e,r){const s=[];let n=0,o=0;if(t.length!==e*r)throw new Error("Array dimensions must match input length.");for(let i=0;i<e;i++){const e=[];for(let s=0;s<r;s++)e.push(t[o]),o+=1;s.push(e),n+=1}return s}function Y(t,e){const r=r=>j(t).map((()=>L(e,r))),s=[];return s.push(r(-1)),s.push(r(1/0)),s.push(r(0)),s}function K(t,e,r){const s=$(t);for(let n=0;n<t;n++){let t=!0,o=0;for(;t;){o=V(e,r);let i=!1;for(let t=0;t<n;t++)if(o===s[t]){i=!0;break}i||(t=!1)}s[n]=o}return s}function H(t,e,r,s,n){e=Math.floor(e);const o=t[0][e],i=t[1][e];if(t[2][e],r>=i[0])return 0;for(let t=0;t<o.length;t++)if(s===o[t])return 0;return J(t,e,r,s,n)}function J(t,e,r,s,n){const o=t[0][e],i=t[1][e],h=t[2][e];if(r>=i[0])return 0;i[0]=r,o[0]=s,h[0]=n;let a=0,l=0;for(;;){const e=2*a+1,s=e+1,n=t[0][0].length;if(e>=n)break;if(s>=n){if(!(i[e]>r))break;l=e}else if(i[e]>=i[s]){if(!(r<i[e]))break;l=e}else{if(!(r<i[s]))break;l=s}i[a]=i[l],o[a]=o[l],h[a]=h[l],a=l}return i[a]=r,o[a]=s,h[a]=n,1}function X(t,e,r,s,n){const o=Y(e,s);for(let s=0;s<e;s++)for(let e=0;e<r;e++){if(t[0][s][e]<0)continue;const r=t[0][s][e],i=t[2][s][e],h=O(n);H(o,s,h,r,i),H(o,r,h,s,i),t[2][s][e]=0}return o}function Q(t){const e=t[0],r=t[1];for(let t=0;t<e.length;t++){const s=e[t],n=r[t];for(let t=0;t<s.length-1;t++){const e=s.length-t-1,r=n.length-t-1,o=s[0];s[0]=s[e],s[e]=o;const i=n[0];n[0]=n[r],n[r]=i,Z(n,s,r,0)}}return{indices:e,weights:r}}function Z(t,e,r,s){for(;2*s+1<r;){const n=2*s+1,o=n+1;let i=s;if(t[i]<t[n]&&(i=n),o<r&&t[i]<t[o]&&(i=o),i===s)break;{const r=t[s];t[s]=t[i],t[i]=r;const n=e[s];e[s]=e[i],e[i]=n,s=i}}}function tt(t,e){const r=t[0][e],s=t[1][e],n=t[2][e];let o=1/0,i=-1;for(let t=0;t>r.length;t++)1===n[t]&&s[t]<o&&(o=s[t],i=t);return i>=0?(n[i]=0,Math.floor(r[i])):-1}class et{constructor(t,e,r,s){if(this.entries=new Map,this.nRows=0,this.nCols=0,t.length!==e.length||t.length!==r.length)throw new Error("rows, cols and values arrays must all have the same length");this.nRows=s[0],this.nCols=s[1];for(let s=0;s<r.length;s++){const n=t[s],o=e[s];this.checkDims(n,o);const i=this.makeKey(n,o);this.entries.set(i,{value:r[s],row:n,col:o})}}makeKey(t,e){return`${t}:${e}`}checkDims(t,e){if(!(t<this.nRows&&e<this.nCols))throw new Error("row and/or col specified outside of matrix dimensions")}set(t,e,r){this.checkDims(t,e);const s=this.makeKey(t,e);this.entries.has(s)?this.entries.get(s).value=r:this.entries.set(s,{value:r,row:t,col:e})}get(t,e,r=0){const s=this.makeKey(t,e);return this.entries.has(s)?this.entries.get(s).value:r}getAll(t=!0){const e=new Array(this.entries.size).fill(null);let r=0;return this.entries.forEach((t=>{e[r++]=t})),t&&e.sort(((t,e)=>t.row===e.row?t.col-e.col:t.row-e.row)),e}getDims(){return[this.nRows,this.nCols]}getRows(){return Array.from(this.entries,(([t,e])=>e.row))}getCols(){return Array.from(this.entries,(([t,e])=>e.col))}getValues(){return Array.from(this.entries,(([t,e])=>e.value))}forEach(t){this.entries.forEach((e=>t(e.value,e.row,e.col)))}map(t){const e=new Float32Array(this.entries.size);let r=0;this.entries.forEach((s=>{e[r++]=t(s.value,s.row,s.col)}));const s=[this.nRows,this.nCols];return new et(this.getRows(),this.getCols(),e,s)}toArray(){const t=j(this.nRows).map((()=>$(this.nCols)));return this.entries.forEach((e=>{t[e.row][e.col]=e.value})),t}}function rt(t){const e=t.getRows(),r=t.getCols(),s=t.getValues(),n=r.length,o=new Int32Array(n),i=new Int32Array(n),h=new Float32Array(n);o.set(e),i.set(r),h.set(s);const a=[t.nCols,t.nRows];return new et(i,o,h,a)}function st(t,e){return ut(t,e,((t,e)=>t*e))}function nt(t,e){return ut(t,e,((t,e)=>t+e))}function ot(t,e){return ut(t,e,((t,e)=>t-e))}function it(t,e){return t.map((t=>t*e))}function ht(t){const e=new Set,r=t.getValues(),s=t.getRows(),n=t.getCols();for(let t=0;t<r.length;t++)0===r[t]&&e.add(t);const o=(t,r)=>!e.has(r),i=r.filter(o),h=s.filter(o),a=n.filter(o);return new et(h,a,i,t.getDims())}function at(t,e="l2"){const r=lt[e],s=new Map;t.forEach(((t,e,r)=>{const n=s.get(e)||[];n.push(r),s.set(e,n)}));const n=new et([],[],[],t.getDims());for(let e of s.keys()){const o=s.get(e).sort(),i=r(o.map((r=>t.get(e,r))));for(let t=0;t<i.length;t++)n.set(e,o[t],i[t])}return n}const lt={max:t=>{let e=-1/0;for(let r=0;r<t.length;r++)e=t[r]>e?t[r]:e;return t.map((t=>t/e))},l1:t=>{let e=0;for(let r=0;r<t.length;r++)e+=t[r];return t.map((t=>t/e))},l2:t=>{let e=0;for(let r=0;r<t.length;r++)e+=t[r]**2;return t.map((t=>Math.sqrt(t**2/e)))}};function ut(t,e,r){const s=new Set,n=[],o=[],i=[],h=(s,h)=>{n.push(s),o.push(h);const a=r(t.get(s,h),e.get(s,h));i.push(a)},a=t.getValues(),l=t.getRows(),u=t.getCols();for(let t=0;t<a.length;t++){const e=l[t],r=u[t],n=`${e}:${r}`;s.add(n),h(e,r)}const c=e.getValues(),f=e.getRows(),m=e.getCols();for(let t=0;t<c.length;t++){const e=f[t],r=m[t],n=`${e}:${r}`;s.has(n)||h(e,r)}const g=[t.nRows,t.nCols];return new et(n,o,i,g)}function ct(t){const e=[];t.forEach(((t,r,s)=>{e.push({value:t,row:r,col:s})})),e.sort(((t,e)=>t.row===e.row?t.col-e.col:t.row-e.row));const r=[],s=[],n=[];let o=-1;for(let t=0;t<e.length;t++){const{row:i,col:h,value:a}=e[t];i!==o&&(o=i,n.push(t)),r.push(h),s.push(a)}return{indices:r,values:s,indptr:n}}class ft{constructor(t,e,r,s){this.hyperplanes=t,this.offsets=e,this.children=r,this.indices=s}}function mt(t,e,r,s){const n=Math.max(10,e),o=q(r).map(((e,r)=>function(t,e=30,r,s){return gt(t,q(t.length),e,r,s)}(t,n,r,s))),i=o.map((t=>function(t,e){const r=dt(t),s=wt(t),n=q(r).map((()=>t.hyperplane?1:0)),o=$(r),i=q(r).map((()=>[-1,-1])),h=q(s).map((()=>q(e).map((()=>-1))));return pt(t,n,o,i,h,0,0),new ft(n,o,i,h)}(t,n)));return i}function gt(t,e,r=30,s,n){if(e.length>r){const o=function(t,e,r){let s=V(e.length,r),n=V(e.length,r);n+=s===n?1:0,n%=e.length;const o=e[s],i=e[n];let h=0,a=0;a=t[o]-t[i],h-=a*(t[o]+t[i])/2;let l=0,u=0;const c=$(e.length);for(let s=0;s<e.length;s++){let n=h;n+=a*t[e[s]],0===n?(c[s]=V(2,r),0===c[s]?l+=1:u+=1):n>0?(c[s]=0,l+=1):(c[s]=1,u+=1)}const f=$(l),m=$(u);l=0,u=0;for(let t=0;t<c.length;t++)0===c[t]?(f[l]=e[t],l+=1):(m[u]=e[t],u+=1);return{indicesLeft:f,indicesRight:m,hyperplane:a,offset:h}}(t,e,n),{indicesLeft:i,indicesRight:h,hyperplane:a,offset:l}=o;return{leftChild:gt(t,i,r,s+1,n),rightChild:gt(t,h,r,s+1,n),isLeaf:!1,hyperplane:a,offset:l}}return{indices:e,isLeaf:!0}}function pt(t,e,r,s,n,o,i){if(t.isLeaf)return s[o][0]=-i,n[i].splice(0,t.indices.length,...t.indices),{nodeNum:o,leafNum:i+=1};{e[o]=t.hyperplane,r[o]=t.offset,s[o][0]=o+1;const h=o;let a=pt(t.leftChild,e,r,s,n,o+1,i);return o=a.nodeNum,i=a.leafNum,s[h][1]=o+1,a=pt(t.rightChild,e,r,s,n,o+1,i),{nodeNum:a.nodeNum,leafNum:a.leafNum}}}function dt(t){return t.isLeaf?1:1+dt(t.leftChild)+dt(t.rightChild)}function wt(t){return t.isLeaf?1:wt(t.leftChild)+wt(t.rightChild)}function yt(t,e,r,s){let n=e;return n+=t*r,0===n?V(2,s):n>0?0:1}function bt(t,e,r){let s=0;for(;e.children[s][0]>0;)s=0===yt(e.hyperplanes[s],e.offsets[s],t,r)?e.children[s][0]:e.children[s][1];const n=-1*e.children[s][0];return e.indices[n]}const Mt=Object.prototype.toString;function xt(t){return Mt.call(t).endsWith("Array]")}function Et(t,e,r){let s=0;const n=r(e);for(let e=0;e<t.x.length;e++)s+=Math.abs(t.y[e]-n(t.x[e]));return s}const St=Object.prototype.toString;function vt(t){const e=St.call(t);return e.endsWith("Array]")&&!e.includes("Big")}const Nt=Object.prototype.toString;function kt(t){const e=Nt.call(t);return e.endsWith("Array]")&&!e.includes("Big")}const Ct=Object.prototype.toString;const At=Object.prototype.toString;function Rt(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!kt(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");if(void 0!==r.output){if(!kt(r.output))throw new TypeError("output option must be an array if specified");e=r.output}else e=new Array(t.length);var s=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!function(t){const e=At.call(t);return e.endsWith("Array]")&&!e.includes("Big")}(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");var r=e.fromIndex,s=void 0===r?0:r,n=e.toIndex,o=void 0===n?t.length:n;if(s<0||s>=t.length||!Number.isInteger(s))throw new Error("fromIndex must be a positive integer smaller than length");if(o<=s||o>t.length||!Number.isInteger(o))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var i=t[s],h=s+1;h<o;h++)t[h]<i&&(i=t[h]);return i}(t),n=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!function(t){const e=Ct.call(t);return e.endsWith("Array]")&&!e.includes("Big")}(t))throw new TypeError("input must be an array");if(0===t.length)throw new TypeError("input must not be empty");var r=e.fromIndex,s=void 0===r?0:r,n=e.toIndex,o=void 0===n?t.length:n;if(s<0||s>=t.length||!Number.isInteger(s))throw new Error("fromIndex must be a positive integer smaller than length");if(o<=s||o>t.length||!Number.isInteger(o))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var i=t[s],h=s+1;h<o;h++)t[h]>i&&(i=t[h]);return i}(t);if(s===n)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var o=r.min,i=void 0===o?r.autoMinMax?s:0:o,h=r.max,a=void 0===h?r.autoMinMax?n:1:h;if(i>=a)throw new RangeError("min option must be smaller than max option");for(var l=(a-i)/(n-s),u=0;u<t.length;u++)e[u]=(t[u]-s)*l+i;return e}const Ft=" ".repeat(2),It=" ".repeat(4);function zt(t,e={}){const{maxRows:r=15,maxColumns:s=10,maxNumSize:n=8,padMinus:o="auto"}=e;return`${t.constructor.name} {\n${Ft}[\n${It}${function(t,e,r,s,n){const{rows:o,columns:i}=t,h=Math.min(o,e),a=Math.min(i,r),l=[];if("auto"===n){n=!1;t:for(let e=0;e<h;e++)for(let r=0;r<a;r++)if(t.get(e,r)<0){n=!0;break t}}for(let e=0;e<h;e++){let r=[];for(let o=0;o<a;o++)r.push(Tt(t.get(e,o),s,n));l.push(`${r.join(" ")}`)}return a!==i&&(l[l.length-1]+=` ... ${i-r} more columns`),h!==o&&l.push(`... ${o-e} more rows`),l.join(`\n${It}`)}(t,r,s,n,o)}\n${Ft}]\n${Ft}rows: ${t.rows}\n${Ft}columns: ${t.columns}\n}`}function Tt(t,e,r){return(t>=0&&r?` ${_t(t,e-1)}`:_t(t,e)).padEnd(e)}function _t(t,e){let r=t.toString();if(r.length<=e)return r;let s=t.toFixed(e);if(s.length>e&&(s=t.toFixed(Math.max(0,e-(s.length-e)))),s.length<=e&&!s.startsWith("0.000")&&!s.startsWith("-0.000"))return s;let n=t.toExponential(e);return n.length>e&&(n=t.toExponential(Math.max(0,e-(n.length-e)))),n.slice(0)}function Dt(t,e,r){let s=r?t.rows:t.rows-1;if(e<0||e>s)throw new RangeError("Row index out of range")}function Pt(t,e,r){let s=r?t.columns:t.columns-1;if(e<0||e>s)throw new RangeError("Column index out of range")}function Vt(t,e){if(e.to1DArray&&(e=e.to1DArray()),e.length!==t.columns)throw new RangeError("vector size must be the same as the number of columns");return e}function Ot(t,e){if(e.to1DArray&&(e=e.to1DArray()),e.length!==t.rows)throw new RangeError("vector size must be the same as the number of rows");return e}function jt(t,e,r,s,n){if(5!==arguments.length)throw new RangeError("expected 4 arguments");if(Lt("startRow",e),Lt("endRow",r),Lt("startColumn",s),Lt("endColumn",n),e>r||s>n||e<0||e>=t.rows||r<0||r>=t.rows||s<0||s>=t.columns||n<0||n>=t.columns)throw new RangeError("Submatrix indices are out of range")}function qt(t,e=0){let r=[];for(let s=0;s<t;s++)r.push(e);return r}function Lt(t,e){if("number"!=typeof e)throw new TypeError(`${t} must be a number`)}function $t(t){if(t.isEmpty())throw new Error("Empty matrix has no elements to index")}class Bt{static from1DArray(t,e,r){if(t*e!==r.length)throw new RangeError("data length does not match given dimensions");let s=new Ut(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)s.set(n,t,r[n*e+t]);return s}static rowVector(t){let e=new Ut(1,t.length);for(let r=0;r<t.length;r++)e.set(0,r,t[r]);return e}static columnVector(t){let e=new Ut(t.length,1);for(let r=0;r<t.length;r++)e.set(r,0,t[r]);return e}static zeros(t,e){return new Ut(t,e)}static ones(t,e){return new Ut(t,e).fill(1)}static rand(t,e,r={}){if("object"!=typeof r)throw new TypeError("options must be an object");const{random:s=Math.random}=r;let n=new Ut(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)n.set(r,t,s());return n}static randInt(t,e,r={}){if("object"!=typeof r)throw new TypeError("options must be an object");const{min:s=0,max:n=1e3,random:o=Math.random}=r;if(!Number.isInteger(s))throw new TypeError("min must be an integer");if(!Number.isInteger(n))throw new TypeError("max must be an integer");if(s>=n)throw new RangeError("min must be smaller than max");let i=n-s,h=new Ut(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++){let e=s+Math.round(o()*i);h.set(r,t,e)}return h}static eye(t,e,r){void 0===e&&(e=t),void 0===r&&(r=1);let s=Math.min(t,e),n=this.zeros(t,e);for(let t=0;t<s;t++)n.set(t,t,r);return n}static diag(t,e,r){let s=t.length;void 0===e&&(e=s),void 0===r&&(r=e);let n=Math.min(s,e,r),o=this.zeros(e,r);for(let e=0;e<n;e++)o.set(e,e,t[e]);return o}static min(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,s=t.columns,n=new Ut(r,s);for(let o=0;o<r;o++)for(let r=0;r<s;r++)n.set(o,r,Math.min(t.get(o,r),e.get(o,r)));return n}static max(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,s=t.columns,n=new this(r,s);for(let o=0;o<r;o++)for(let r=0;r<s;r++)n.set(o,r,Math.max(t.get(o,r),e.get(o,r)));return n}static checkMatrix(t){return Bt.isMatrix(t)?t:new Ut(t)}static isMatrix(t){return null!=t&&"Matrix"===t.klass}get size(){return this.rows*this.columns}apply(t){if("function"!=typeof t)throw new TypeError("callback must be a function");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.call(this,e,r);return this}to1DArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.push(this.get(e,r));return t}to2DArray(){let t=[];for(let e=0;e<this.rows;e++){t.push([]);for(let r=0;r<this.columns;r++)t[e].push(this.get(e,r))}return t}toJSON(){return this.to2DArray()}isRowVector(){return 1===this.rows}isColumnVector(){return 1===this.columns}isVector(){return 1===this.rows||1===this.columns}isSquare(){return this.rows===this.columns}isEmpty(){return 0===this.rows||0===this.columns}isSymmetric(){if(this.isSquare()){for(let t=0;t<this.rows;t++)for(let e=0;e<=t;e++)if(this.get(t,e)!==this.get(e,t))return!1;return!0}return!1}isEchelonForm(){let t=0,e=0,r=-1,s=!0,n=!1;for(;t<this.rows&&s;){for(e=0,n=!1;e<this.columns&&!1===n;)0===this.get(t,e)?e++:1===this.get(t,e)&&e>r?(n=!0,r=e):(s=!1,n=!0);t++}return s}isReducedEchelonForm(){let t=0,e=0,r=-1,s=!0,n=!1;for(;t<this.rows&&s;){for(e=0,n=!1;e<this.columns&&!1===n;)0===this.get(t,e)?e++:1===this.get(t,e)&&e>r?(n=!0,r=e):(s=!1,n=!0);for(let r=e+1;r<this.rows;r++)0!==this.get(t,r)&&(s=!1);t++}return s}echelonForm(){let t=this.clone(),e=0,r=0;for(;e<t.rows&&r<t.columns;){let s=e;for(let n=e;n<t.rows;n++)t.get(n,r)>t.get(s,r)&&(s=n);if(0===t.get(s,r))r++;else{t.swapRows(e,s);let n=t.get(e,r);for(let s=r;s<t.columns;s++)t.set(e,s,t.get(e,s)/n);for(let s=e+1;s<t.rows;s++){let n=t.get(s,r)/t.get(e,r);t.set(s,r,0);for(let o=r+1;o<t.columns;o++)t.set(s,o,t.get(s,o)-t.get(e,o)*n)}e++,r++}}return t}reducedEchelonForm(){let t=this.echelonForm(),e=t.columns,r=t.rows,s=r-1;for(;s>=0;)if(0===t.maxRow(s))s--;else{let n=0,o=!1;for(;n<r&&!1===o;)1===t.get(s,n)?o=!0:n++;for(let r=0;r<s;r++){let o=t.get(r,n);for(let i=n;i<e;i++){let e=t.get(r,i)-o*t.get(s,i);t.set(r,i,e)}}s--}return t}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{rows:e=1,columns:r=1}=t;if(!Number.isInteger(e)||e<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(r)||r<=0)throw new TypeError("columns must be a positive integer");let s=new Ut(this.rows*e,this.columns*r);for(let t=0;t<e;t++)for(let e=0;e<r;e++)s.setSubMatrix(this,this.rows*t,this.columns*e);return s}fill(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,t);return this}neg(){return this.mulS(-1)}getRow(t){Dt(this,t);let e=[];for(let r=0;r<this.columns;r++)e.push(this.get(t,r));return e}getRowVector(t){return Ut.rowVector(this.getRow(t))}setRow(t,e){Dt(this,t),e=Vt(this,e);for(let r=0;r<this.columns;r++)this.set(t,r,e[r]);return this}swapRows(t,e){Dt(this,t),Dt(this,e);for(let r=0;r<this.columns;r++){let s=this.get(t,r);this.set(t,r,this.get(e,r)),this.set(e,r,s)}return this}getColumn(t){Pt(this,t);let e=[];for(let r=0;r<this.rows;r++)e.push(this.get(r,t));return e}getColumnVector(t){return Ut.columnVector(this.getColumn(t))}setColumn(t,e){Pt(this,t),e=Ot(this,e);for(let r=0;r<this.rows;r++)this.set(r,t,e[r]);return this}swapColumns(t,e){Pt(this,t),Pt(this,e);for(let r=0;r<this.rows;r++){let s=this.get(r,t);this.set(r,t,this.get(r,e)),this.set(r,e,s)}return this}addRowVector(t){t=Vt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[r]);return this}subRowVector(t){t=Vt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[r]);return this}mulRowVector(t){t=Vt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[r]);return this}divRowVector(t){t=Vt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[r]);return this}addColumnVector(t){t=Ot(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[e]);return this}subColumnVector(t){t=Ot(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[e]);return this}mulColumnVector(t){t=Ot(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[e]);return this}divColumnVector(t){t=Ot(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[e]);return this}mulRow(t,e){Dt(this,t);for(let r=0;r<this.columns;r++)this.set(t,r,this.get(t,r)*e);return this}mulColumn(t,e){Pt(this,t);for(let r=0;r<this.rows;r++)this.set(r,t,this.get(r,t)*e);return this}max(t){if(this.isEmpty())return NaN;switch(t){case"row":{const t=new Array(this.rows).fill(Number.NEGATIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t[e]&&(t[e]=this.get(e,r));return t}case"column":{const t=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t[r]&&(t[r]=this.get(e,r));return t}case void 0:{let t=this.get(0,0);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)>t&&(t=this.get(e,r));return t}default:throw new Error(`invalid option: ${t}`)}}maxIndex(){$t(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let s=0;s<this.columns;s++)this.get(r,s)>t&&(t=this.get(r,s),e[0]=r,e[1]=s);return e}min(t){if(this.isEmpty())return NaN;switch(t){case"row":{const t=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t[e]&&(t[e]=this.get(e,r));return t}case"column":{const t=new Array(this.columns).fill(Number.POSITIVE_INFINITY);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t[r]&&(t[r]=this.get(e,r));return t}case void 0:{let t=this.get(0,0);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.get(e,r)<t&&(t=this.get(e,r));return t}default:throw new Error(`invalid option: ${t}`)}}minIndex(){$t(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let s=0;s<this.columns;s++)this.get(r,s)<t&&(t=this.get(r,s),e[0]=r,e[1]=s);return e}maxRow(t){if(Dt(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)>e&&(e=this.get(t,r));return e}maxRowIndex(t){Dt(this,t),$t(this);let e=this.get(t,0),r=[t,0];for(let s=1;s<this.columns;s++)this.get(t,s)>e&&(e=this.get(t,s),r[1]=s);return r}minRow(t){if(Dt(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)<e&&(e=this.get(t,r));return e}minRowIndex(t){Dt(this,t),$t(this);let e=this.get(t,0),r=[t,0];for(let s=1;s<this.columns;s++)this.get(t,s)<e&&(e=this.get(t,s),r[1]=s);return r}maxColumn(t){if(Pt(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)>e&&(e=this.get(r,t));return e}maxColumnIndex(t){Pt(this,t),$t(this);let e=this.get(0,t),r=[0,t];for(let s=1;s<this.rows;s++)this.get(s,t)>e&&(e=this.get(s,t),r[0]=s);return r}minColumn(t){if(Pt(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)<e&&(e=this.get(r,t));return e}minColumnIndex(t){Pt(this,t),$t(this);let e=this.get(0,t),r=[0,t];for(let s=1;s<this.rows;s++)this.get(s,t)<e&&(e=this.get(s,t),r[0]=s);return r}diag(){let t=Math.min(this.rows,this.columns),e=[];for(let r=0;r<t;r++)e.push(this.get(r,r));return e}norm(t="frobenius"){let e=0;if("max"===t)return this.max();if("frobenius"===t){for(let t=0;t<this.rows;t++)for(let r=0;r<this.columns;r++)e+=this.get(t,r)*this.get(t,r);return Math.sqrt(e)}throw new RangeError(`unknown norm type: ${t}`)}cumulativeSum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t+=this.get(e,r),this.set(e,r,t);return this}dot(t){Bt.isMatrix(t)&&(t=t.to1DArray());let e=this.to1DArray();if(e.length!==t.length)throw new RangeError("vectors do not have the same size");let r=0;for(let s=0;s<e.length;s++)r+=e[s]*t[s];return r}mmul(t){t=Ut.checkMatrix(t);let e=this.rows,r=this.columns,s=t.columns,n=new Ut(e,s),o=new Float64Array(r);for(let i=0;i<s;i++){for(let e=0;e<r;e++)o[e]=t.get(e,i);for(let t=0;t<e;t++){let e=0;for(let s=0;s<r;s++)e+=this.get(t,s)*o[s];n.set(t,i,e)}}return n}strassen2x2(t){t=Ut.checkMatrix(t);let e=new Ut(2,2);const r=this.get(0,0),s=t.get(0,0),n=this.get(0,1),o=t.get(0,1),i=this.get(1,0),h=t.get(1,0),a=this.get(1,1),l=t.get(1,1),u=(r+a)*(s+l),c=(i+a)*s,f=r*(o-l),m=a*(h-s),g=(r+n)*l,p=u+m-g+(n-a)*(h+l),d=f+g,w=c+m,y=u-c+f+(i-r)*(s+o);return e.set(0,0,p),e.set(0,1,d),e.set(1,0,w),e.set(1,1,y),e}strassen3x3(t){t=Ut.checkMatrix(t);let e=new Ut(3,3);const r=this.get(0,0),s=this.get(0,1),n=this.get(0,2),o=this.get(1,0),i=this.get(1,1),h=this.get(1,2),a=this.get(2,0),l=this.get(2,1),u=this.get(2,2),c=t.get(0,0),f=t.get(0,1),m=t.get(0,2),g=t.get(1,0),p=t.get(1,1),d=t.get(1,2),w=t.get(2,0),y=t.get(2,1),b=t.get(2,2),M=(r-o)*(-f+p),x=(-r+o+i)*(c-f+p),E=(o+i)*(-c+f),S=r*c,v=(-r+a+l)*(c-m+d),N=(-r+a)*(m-d),k=(a+l)*(-c+m),C=(-n+l+u)*(p+w-y),A=(n-u)*(p-y),R=n*w,F=(l+u)*(-w+y),I=(-n+i+h)*(d+w-b),z=(n-h)*(d-b),T=(i+h)*(-w+b),_=S+R+s*g,D=(r+s+n-o-i-l-u)*p+x+E+S+C+R+F,P=S+v+k+(r+s+n-i-h-a-l)*d+R+I+T,V=M+i*(-c+f+g-p-d-w+b)+x+S+R+I+z,O=M+x+E+S+h*y,j=R+I+z+T+o*m,q=S+v+N+l*(-c+m+g-p-d-w+y)+C+A+R,L=C+A+R+F+a*f,$=S+v+N+k+u*b;return e.set(0,0,_),e.set(0,1,D),e.set(0,2,P),e.set(1,0,V),e.set(1,1,O),e.set(1,2,j),e.set(2,0,q),e.set(2,1,L),e.set(2,2,$),e}mmulStrassen(t){t=Ut.checkMatrix(t);let e=this.clone(),r=e.rows,s=e.columns,n=t.rows,o=t.columns;function i(t,e,r){let s=t.rows,n=t.columns;if(s===e&&n===r)return t;{let s=Bt.zeros(e,r);return s=s.setSubMatrix(t,0,0),s}}s!==n&&console.warn(`Multiplying ${r} x ${s} and ${n} x ${o} matrix: dimensions do not match.`);let h=Math.max(r,n),a=Math.max(s,o);return e=i(e,h,a),function t(e,r,s,n){if(s<=512||n<=512)return e.mmul(r);s%2==1&&n%2==1?(e=i(e,s+1,n+1),r=i(r,s+1,n+1)):s%2==1?(e=i(e,s+1,n),r=i(r,s+1,n)):n%2==1&&(e=i(e,s,n+1),r=i(r,s,n+1));let o=parseInt(e.rows/2,10),h=parseInt(e.columns/2,10),a=e.subMatrix(0,o-1,0,h-1),l=r.subMatrix(0,o-1,0,h-1),u=e.subMatrix(0,o-1,h,e.columns-1),c=r.subMatrix(0,o-1,h,r.columns-1),f=e.subMatrix(o,e.rows-1,0,h-1),m=r.subMatrix(o,r.rows-1,0,h-1),g=e.subMatrix(o,e.rows-1,h,e.columns-1),p=r.subMatrix(o,r.rows-1,h,r.columns-1),d=t(Bt.add(a,g),Bt.add(l,p),o,h),w=t(Bt.add(f,g),l,o,h),y=t(a,Bt.sub(c,p),o,h),b=t(g,Bt.sub(m,l),o,h),M=t(Bt.add(a,u),p,o,h),x=t(Bt.sub(f,a),Bt.add(l,c),o,h),E=t(Bt.sub(u,g),Bt.add(m,p),o,h),S=Bt.add(d,b);S.sub(M),S.add(E);let v=Bt.add(y,M),N=Bt.add(w,b),k=Bt.sub(d,w);k.add(y),k.add(x);let C=Bt.zeros(2*S.rows,2*S.columns);return C=C.setSubMatrix(S,0,0),C=C.setSubMatrix(v,S.rows,0),C=C.setSubMatrix(N,0,S.columns),C=C.setSubMatrix(k,S.rows,S.columns),C.subMatrix(0,s-1,0,n-1)}(e,t=i(t,h,a),h,a)}scaleRows(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let s=new Ut(this.rows,this.columns);for(let t=0;t<this.rows;t++){const n=this.getRow(t);n.length>0&&Rt(n,{min:e,max:r,output:n}),s.setRow(t,n)}return s}scaleColumns(t={}){if("object"!=typeof t)throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let s=new Ut(this.rows,this.columns);for(let t=0;t<this.columns;t++){const n=this.getColumn(t);n.length&&Rt(n,{min:e,max:r,output:n}),s.setColumn(t,n)}return s}flipRows(){const t=Math.ceil(this.columns/2);for(let e=0;e<this.rows;e++)for(let r=0;r<t;r++){let t=this.get(e,r),s=this.get(e,this.columns-1-r);this.set(e,r,s),this.set(e,this.columns-1-r,t)}return this}flipColumns(){const t=Math.ceil(this.rows/2);for(let e=0;e<this.columns;e++)for(let r=0;r<t;r++){let t=this.get(r,e),s=this.get(this.rows-1-r,e);this.set(r,e,s),this.set(this.rows-1-r,e,t)}return this}kroneckerProduct(t){t=Ut.checkMatrix(t);let e=this.rows,r=this.columns,s=t.rows,n=t.columns,o=new Ut(e*s,r*n);for(let i=0;i<e;i++)for(let e=0;e<r;e++)for(let r=0;r<s;r++)for(let h=0;h<n;h++)o.set(s*i+r,n*e+h,this.get(i,e)*t.get(r,h));return o}kroneckerSum(t){if(t=Ut.checkMatrix(t),!this.isSquare()||!t.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let e=this.rows,r=t.rows,s=this.kroneckerProduct(Ut.eye(r,r)),n=Ut.eye(e,e).kroneckerProduct(t);return s.add(n)}transpose(){let t=new Ut(this.columns,this.rows);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.set(r,e,this.get(e,r));return t}sortRows(t=Wt){for(let e=0;e<this.rows;e++)this.setRow(e,this.getRow(e).sort(t));return this}sortColumns(t=Wt){for(let e=0;e<this.columns;e++)this.setColumn(e,this.getColumn(e).sort(t));return this}subMatrix(t,e,r,s){jt(this,t,e,r,s);let n=new Ut(e-t+1,s-r+1);for(let o=t;o<=e;o++)for(let e=r;e<=s;e++)n.set(o-t,e-r,this.get(o,e));return n}subMatrixRow(t,e,r){if(void 0===e&&(e=0),void 0===r&&(r=this.columns-1),e>r||e<0||e>=this.columns||r<0||r>=this.columns)throw new RangeError("Argument out of range");let s=new Ut(t.length,r-e+1);for(let n=0;n<t.length;n++)for(let o=e;o<=r;o++){if(t[n]<0||t[n]>=this.rows)throw new RangeError(`Row index out of range: ${t[n]}`);s.set(n,o-e,this.get(t[n],o))}return s}subMatrixColumn(t,e,r){if(void 0===e&&(e=0),void 0===r&&(r=this.rows-1),e>r||e<0||e>=this.rows||r<0||r>=this.rows)throw new RangeError("Argument out of range");let s=new Ut(r-e+1,t.length);for(let n=0;n<t.length;n++)for(let o=e;o<=r;o++){if(t[n]<0||t[n]>=this.columns)throw new RangeError(`Column index out of range: ${t[n]}`);s.set(o-e,n,this.get(o,t[n]))}return s}setSubMatrix(t,e,r){if((t=Ut.checkMatrix(t)).isEmpty())return this;jt(this,e,e+t.rows-1,r,r+t.columns-1);for(let s=0;s<t.rows;s++)for(let n=0;n<t.columns;n++)this.set(e+s,r+n,t.get(s,n));return this}selection(t,e){!function(t,e){if(!vt(e))throw new TypeError("row indices must be an array");for(let r=0;r<e.length;r++)if(e[r]<0||e[r]>=t.rows)throw new RangeError("row indices are out of range")}(this,t),function(t,e){if(!vt(e))throw new TypeError("column indices must be an array");for(let r=0;r<e.length;r++)if(e[r]<0||e[r]>=t.columns)throw new RangeError("column indices are out of range")}(this,e);let r=new Ut(t.length,e.length);for(let s=0;s<t.length;s++){let n=t[s];for(let t=0;t<e.length;t++){let o=e[t];r.set(s,t,this.get(n,o))}}return r}trace(){let t=Math.min(this.rows,this.columns),e=0;for(let r=0;r<t;r++)e+=this.get(r,r);return e}clone(){let t=new Ut(this.rows,this.columns);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.set(e,r,this.get(e,r));return t}sum(t){switch(t){case"row":return function(t){let e=qt(t.rows);for(let r=0;r<t.rows;++r)for(let s=0;s<t.columns;++s)e[r]+=t.get(r,s);return e}(this);case"column":return function(t){let e=qt(t.columns);for(let r=0;r<t.rows;++r)for(let s=0;s<t.columns;++s)e[s]+=t.get(r,s);return e}(this);case void 0:return function(t){let e=0;for(let r=0;r<t.rows;r++)for(let s=0;s<t.columns;s++)e+=t.get(r,s);return e}(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return function(t){let e=qt(t.rows,1);for(let r=0;r<t.rows;++r)for(let s=0;s<t.columns;++s)e[r]*=t.get(r,s);return e}(this);case"column":return function(t){let e=qt(t.columns,1);for(let r=0;r<t.rows;++r)for(let s=0;s<t.columns;++s)e[s]*=t.get(r,s);return e}(this);case void 0:return function(t){let e=1;for(let r=0;r<t.rows;r++)for(let s=0;s<t.columns;s++)e*=t.get(r,s);return e}(this);default:throw new Error(`invalid option: ${t}`)}}mean(t){const e=this.sum(t);switch(t){case"row":for(let t=0;t<this.rows;t++)e[t]/=this.columns;return e;case"column":for(let t=0;t<this.columns;t++)e[t]/=this.rows;return e;case void 0:return e/this.size;default:throw new Error(`invalid option: ${t}`)}}variance(t,e={}){if("object"==typeof t&&(e=t,t=void 0),"object"!=typeof e)throw new TypeError("options must be an object");const{unbiased:r=!0,mean:s=this.mean(t)}=e;if("boolean"!=typeof r)throw new TypeError("unbiased must be a boolean");switch(t){case"row":if(!vt(s))throw new TypeError("mean must be an array");return function(t,e,r){const s=t.rows,n=t.columns,o=[];for(let i=0;i<s;i++){let s=0,h=0,a=0;for(let e=0;e<n;e++)a=t.get(i,e)-r[i],s+=a,h+=a*a;e?o.push((h-s*s/n)/(n-1)):o.push((h-s*s/n)/n)}return o}(this,r,s);case"column":if(!vt(s))throw new TypeError("mean must be an array");return function(t,e,r){const s=t.rows,n=t.columns,o=[];for(let i=0;i<n;i++){let n=0,h=0,a=0;for(let e=0;e<s;e++)a=t.get(e,i)-r[i],n+=a,h+=a*a;e?o.push((h-n*n/s)/(s-1)):o.push((h-n*n/s)/s)}return o}(this,r,s);case void 0:if("number"!=typeof s)throw new TypeError("mean must be a number");return function(t,e,r){const s=t.rows,n=t.columns,o=s*n;let i=0,h=0,a=0;for(let e=0;e<s;e++)for(let s=0;s<n;s++)a=t.get(e,s)-r,i+=a,h+=a*a;return e?(h-i*i/o)/(o-1):(h-i*i/o)/o}(this,r,s);default:throw new Error(`invalid option: ${t}`)}}standardDeviation(t,e){"object"==typeof t&&(e=t,t=void 0);const r=this.variance(t,e);if(void 0===t)return Math.sqrt(r);for(let t=0;t<r.length;t++)r[t]=Math.sqrt(r[t]);return r}center(t,e={}){if("object"==typeof t&&(e=t,t=void 0),"object"!=typeof e)throw new TypeError("options must be an object");const{center:r=this.mean(t)}=e;switch(t){case"row":if(!vt(r))throw new TypeError("center must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let s=0;s<t.columns;s++)t.set(r,s,t.get(r,s)-e[r])}(this,r),this;case"column":if(!vt(r))throw new TypeError("center must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let s=0;s<t.columns;s++)t.set(r,s,t.get(r,s)-e[s])}(this,r),this;case void 0:if("number"!=typeof r)throw new TypeError("center must be a number");return function(t,e){for(let r=0;r<t.rows;r++)for(let s=0;s<t.columns;s++)t.set(r,s,t.get(r,s)-e)}(this,r),this;default:throw new Error(`invalid option: ${t}`)}}scale(t,e={}){if("object"==typeof t&&(e=t,t=void 0),"object"!=typeof e)throw new TypeError("options must be an object");let r=e.scale;switch(t){case"row":if(void 0===r)r=function(t){const e=[];for(let r=0;r<t.rows;r++){let s=0;for(let e=0;e<t.columns;e++)s+=Math.pow(t.get(r,e),2)/(t.columns-1);e.push(Math.sqrt(s))}return e}(this);else if(!vt(r))throw new TypeError("scale must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let s=0;s<t.columns;s++)t.set(r,s,t.get(r,s)/e[r])}(this,r),this;case"column":if(void 0===r)r=function(t){const e=[];for(let r=0;r<t.columns;r++){let s=0;for(let e=0;e<t.rows;e++)s+=Math.pow(t.get(e,r),2)/(t.rows-1);e.push(Math.sqrt(s))}return e}(this);else if(!vt(r))throw new TypeError("scale must be an array");return function(t,e){for(let r=0;r<t.rows;r++)for(let s=0;s<t.columns;s++)t.set(r,s,t.get(r,s)/e[s])}(this,r),this;case void 0:if(void 0===r)r=function(t){const e=t.size-1;let r=0;for(let s=0;s<t.columns;s++)for(let n=0;n<t.rows;n++)r+=Math.pow(t.get(n,s),2)/e;return Math.sqrt(r)}(this);else if("number"!=typeof r)throw new TypeError("scale must be a number");return function(t,e){for(let r=0;r<t.rows;r++)for(let s=0;s<t.columns;s++)t.set(r,s,t.get(r,s)/e)}(this,r),this;default:throw new Error(`invalid option: ${t}`)}}toString(t){return zt(this,t)}}function Wt(t,e){return t-e}Bt.prototype.klass="Matrix","undefined"!=typeof Symbol&&(Bt.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return zt(this)}),Bt.random=Bt.rand,Bt.randomInt=Bt.randInt,Bt.diagonal=Bt.diag,Bt.prototype.diagonal=Bt.prototype.diag,Bt.identity=Bt.eye,Bt.prototype.negate=Bt.prototype.neg,Bt.prototype.tensorProduct=Bt.prototype.kroneckerProduct;class Ut extends Bt{constructor(t,e){if(super(),Ut.isMatrix(t))return t.clone();if(Number.isInteger(t)&&t>=0){if(this.data=[],!(Number.isInteger(e)&&e>=0))throw new TypeError("nColumns must be a positive integer");for(let r=0;r<t;r++)this.data.push(new Float64Array(e))}else{if(!vt(t))throw new TypeError("First argument must be a positive number or an array");{const r=t;if("number"!=typeof(e=(t=r.length)?r[0].length:0))throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let s=0;s<t;s++){if(r[s].length!==e)throw new RangeError("Inconsistent array dimensions");if(!r[s].every((t=>"number"==typeof t)))throw new TypeError("Input data contains non-numeric values");this.data.push(Float64Array.from(r[s]))}}}this.rows=t,this.columns=e}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}removeRow(t){return Dt(this,t),this.data.splice(t,1),this.rows-=1,this}addRow(t,e){return void 0===e&&(e=t,t=this.rows),Dt(this,t,!0),e=Float64Array.from(Vt(this,e)),this.data.splice(t,0,e),this.rows+=1,this}removeColumn(t){Pt(this,t);for(let e=0;e<this.rows;e++){const r=new Float64Array(this.columns-1);for(let s=0;s<t;s++)r[s]=this.data[e][s];for(let s=t+1;s<this.columns;s++)r[s-1]=this.data[e][s];this.data[e]=r}return this.columns-=1,this}addColumn(t,e){void 0===e&&(e=t,t=this.columns),Pt(this,t,!0),e=Ot(this,e);for(let r=0;r<this.rows;r++){const s=new Float64Array(this.columns+1);let n=0;for(;n<t;n++)s[n]=this.data[r][n];for(s[n++]=e[r];n<this.columns+1;n++)s[n]=this.data[r][n-1];this.data[r]=s}return this.columns+=1,this}}!function(t,e){t.prototype.add=function(t){return"number"==typeof t?this.addS(t):this.addM(t)},t.prototype.addS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t);return this},t.prototype.addM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t.get(e,r));return this},t.add=function(t,r){return new e(t).add(r)},t.prototype.sub=function(t){return"number"==typeof t?this.subS(t):this.subM(t)},t.prototype.subS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t);return this},t.prototype.subM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t.get(e,r));return this},t.sub=function(t,r){return new e(t).sub(r)},t.prototype.subtract=t.prototype.sub,t.prototype.subtractS=t.prototype.subS,t.prototype.subtractM=t.prototype.subM,t.subtract=t.sub,t.prototype.mul=function(t){return"number"==typeof t?this.mulS(t):this.mulM(t)},t.prototype.mulS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t);return this},t.prototype.mulM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t.get(e,r));return this},t.mul=function(t,r){return new e(t).mul(r)},t.prototype.multiply=t.prototype.mul,t.prototype.multiplyS=t.prototype.mulS,t.prototype.multiplyM=t.prototype.mulM,t.multiply=t.mul,t.prototype.div=function(t){return"number"==typeof t?this.divS(t):this.divM(t)},t.prototype.divS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t);return this},t.prototype.divM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t.get(e,r));return this},t.div=function(t,r){return new e(t).div(r)},t.prototype.divide=t.prototype.div,t.prototype.divideS=t.prototype.divS,t.prototype.divideM=t.prototype.divM,t.divide=t.div,t.prototype.mod=function(t){return"number"==typeof t?this.modS(t):this.modM(t)},t.prototype.modS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)%t);return this},t.prototype.modM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)%t.get(e,r));return this},t.mod=function(t,r){return new e(t).mod(r)},t.prototype.modulus=t.prototype.mod,t.prototype.modulusS=t.prototype.modS,t.prototype.modulusM=t.prototype.modM,t.modulus=t.mod,t.prototype.and=function(t){return"number"==typeof t?this.andS(t):this.andM(t)},t.prototype.andS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)&t);return this},t.prototype.andM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)&t.get(e,r));return this},t.and=function(t,r){return new e(t).and(r)},t.prototype.or=function(t){return"number"==typeof t?this.orS(t):this.orM(t)},t.prototype.orS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)|t);return this},t.prototype.orM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)|t.get(e,r));return this},t.or=function(t,r){return new e(t).or(r)},t.prototype.xor=function(t){return"number"==typeof t?this.xorS(t):this.xorM(t)},t.prototype.xorS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)^t);return this},t.prototype.xorM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)^t.get(e,r));return this},t.xor=function(t,r){return new e(t).xor(r)},t.prototype.leftShift=function(t){return"number"==typeof t?this.leftShiftS(t):this.leftShiftM(t)},t.prototype.leftShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)<<t);return this},t.prototype.leftShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)<<t.get(e,r));return this},t.leftShift=function(t,r){return new e(t).leftShift(r)},t.prototype.signPropagatingRightShift=function(t){return"number"==typeof t?this.signPropagatingRightShiftS(t):this.signPropagatingRightShiftM(t)},t.prototype.signPropagatingRightShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>t);return this},t.prototype.signPropagatingRightShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>t.get(e,r));return this},t.signPropagatingRightShift=function(t,r){return new e(t).signPropagatingRightShift(r)},t.prototype.rightShift=function(t){return"number"==typeof t?this.rightShiftS(t):this.rightShiftM(t)},t.prototype.rightShiftS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>>t);return this},t.prototype.rightShiftM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)>>>t.get(e,r));return this},t.rightShift=function(t,r){return new e(t).rightShift(r)},t.prototype.zeroFillRightShift=t.prototype.rightShift,t.prototype.zeroFillRightShiftS=t.prototype.rightShiftS,t.prototype.zeroFillRightShiftM=t.prototype.rightShiftM,t.zeroFillRightShift=t.rightShift,t.prototype.not=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,~this.get(t,e));return this},t.not=function(t){return new e(t).not()},t.prototype.abs=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.abs(this.get(t,e)));return this},t.abs=function(t){return new e(t).abs()},t.prototype.acos=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.acos(this.get(t,e)));return this},t.acos=function(t){return new e(t).acos()},t.prototype.acosh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.acosh(this.get(t,e)));return this},t.acosh=function(t){return new e(t).acosh()},t.prototype.asin=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.asin(this.get(t,e)));return this},t.asin=function(t){return new e(t).asin()},t.prototype.asinh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.asinh(this.get(t,e)));return this},t.asinh=function(t){return new e(t).asinh()},t.prototype.atan=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.atan(this.get(t,e)));return this},t.atan=function(t){return new e(t).atan()},t.prototype.atanh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.atanh(this.get(t,e)));return this},t.atanh=function(t){return new e(t).atanh()},t.prototype.cbrt=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cbrt(this.get(t,e)));return this},t.cbrt=function(t){return new e(t).cbrt()},t.prototype.ceil=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.ceil(this.get(t,e)));return this},t.ceil=function(t){return new e(t).ceil()},t.prototype.clz32=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.clz32(this.get(t,e)));return this},t.clz32=function(t){return new e(t).clz32()},t.prototype.cos=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cos(this.get(t,e)));return this},t.cos=function(t){return new e(t).cos()},t.prototype.cosh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.cosh(this.get(t,e)));return this},t.cosh=function(t){return new e(t).cosh()},t.prototype.exp=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.exp(this.get(t,e)));return this},t.exp=function(t){return new e(t).exp()},t.prototype.expm1=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.expm1(this.get(t,e)));return this},t.expm1=function(t){return new e(t).expm1()},t.prototype.floor=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.floor(this.get(t,e)));return this},t.floor=function(t){return new e(t).floor()},t.prototype.fround=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.fround(this.get(t,e)));return this},t.fround=function(t){return new e(t).fround()},t.prototype.log=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log(this.get(t,e)));return this},t.log=function(t){return new e(t).log()},t.prototype.log1p=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log1p(this.get(t,e)));return this},t.log1p=function(t){return new e(t).log1p()},t.prototype.log10=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log10(this.get(t,e)));return this},t.log10=function(t){return new e(t).log10()},t.prototype.log2=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.log2(this.get(t,e)));return this},t.log2=function(t){return new e(t).log2()},t.prototype.round=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.round(this.get(t,e)));return this},t.round=function(t){return new e(t).round()},t.prototype.sign=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sign(this.get(t,e)));return this},t.sign=function(t){return new e(t).sign()},t.prototype.sin=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sin(this.get(t,e)));return this},t.sin=function(t){return new e(t).sin()},t.prototype.sinh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sinh(this.get(t,e)));return this},t.sinh=function(t){return new e(t).sinh()},t.prototype.sqrt=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.sqrt(this.get(t,e)));return this},t.sqrt=function(t){return new e(t).sqrt()},t.prototype.tan=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.tan(this.get(t,e)));return this},t.tan=function(t){return new e(t).tan()},t.prototype.tanh=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.tanh(this.get(t,e)));return this},t.tanh=function(t){return new e(t).tanh()},t.prototype.trunc=function(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)this.set(t,e,Math.trunc(this.get(t,e)));return this},t.trunc=function(t){return new e(t).trunc()},t.pow=function(t,r){return new e(t).pow(r)},t.prototype.pow=function(t){return"number"==typeof t?this.powS(t):this.powM(t)},t.prototype.powS=function(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,Math.pow(this.get(e,r),t));return this},t.prototype.powM=function(t){if(t=e.checkMatrix(t),this.rows!==t.rows||this.columns!==t.columns)throw new RangeError("Matrices dimensions must be equal");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,Math.pow(this.get(e,r),t.get(e,r)));return this}}(Bt,Ut);class Gt extends Bt{constructor(t){super(),this.data=t,this.rows=t.length,this.columns=t[0].length}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}}class Yt{constructor(t){let e,r,s,n,o,i,h,a,l,u=(t=Gt.checkMatrix(t)).clone(),c=u.rows,f=u.columns,m=new Float64Array(c),g=1;for(e=0;e<c;e++)m[e]=e;for(a=new Float64Array(c),r=0;r<f;r++){for(e=0;e<c;e++)a[e]=u.get(e,r);for(e=0;e<c;e++){for(l=Math.min(e,r),o=0,s=0;s<l;s++)o+=u.get(e,s)*a[s];a[e]-=o,u.set(e,r,a[e])}for(n=r,e=r+1;e<c;e++)Math.abs(a[e])>Math.abs(a[n])&&(n=e);if(n!==r){for(s=0;s<f;s++)i=u.get(n,s),u.set(n,s,u.get(r,s)),u.set(r,s,i);h=m[n],m[n]=m[r],m[r]=h,g=-g}if(r<c&&0!==u.get(r,r))for(e=r+1;e<c;e++)u.set(e,r,u.get(e,r)/u.get(r,r))}this.LU=u,this.pivotVector=m,this.pivotSign=g}isSingular(){let t=this.LU,e=t.columns;for(let r=0;r<e;r++)if(0===t.get(r,r))return!0;return!1}solve(t){t=Ut.checkMatrix(t);let e=this.LU;if(e.rows!==t.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let r,s,n,o=t.columns,i=t.subMatrixRow(this.pivotVector,0,o-1),h=e.columns;for(n=0;n<h;n++)for(r=n+1;r<h;r++)for(s=0;s<o;s++)i.set(r,s,i.get(r,s)-i.get(n,s)*e.get(r,n));for(n=h-1;n>=0;n--){for(s=0;s<o;s++)i.set(n,s,i.get(n,s)/e.get(n,n));for(r=0;r<n;r++)for(s=0;s<o;s++)i.set(r,s,i.get(r,s)-i.get(n,s)*e.get(r,n))}return i}get determinant(){let t=this.LU;if(!t.isSquare())throw new Error("Matrix must be square");let e=this.pivotSign,r=t.columns;for(let s=0;s<r;s++)e*=t.get(s,s);return e}get lowerTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,s=new Ut(e,r);for(let n=0;n<e;n++)for(let e=0;e<r;e++)n>e?s.set(n,e,t.get(n,e)):n===e?s.set(n,e,1):s.set(n,e,0);return s}get upperTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,s=new Ut(e,r);for(let n=0;n<e;n++)for(let e=0;e<r;e++)n<=e?s.set(n,e,t.get(n,e)):s.set(n,e,0);return s}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function Kt(t,e){let r=0;return Math.abs(t)>Math.abs(e)?(r=e/t,Math.abs(t)*Math.sqrt(1+r*r)):0!==e?(r=t/e,Math.abs(e)*Math.sqrt(1+r*r)):0}class Ht{constructor(t){let e,r,s,n,o=(t=Gt.checkMatrix(t)).clone(),i=t.rows,h=t.columns,a=new Float64Array(h);for(s=0;s<h;s++){let t=0;for(e=s;e<i;e++)t=Kt(t,o.get(e,s));if(0!==t){for(o.get(s,s)<0&&(t=-t),e=s;e<i;e++)o.set(e,s,o.get(e,s)/t);for(o.set(s,s,o.get(s,s)+1),r=s+1;r<h;r++){for(n=0,e=s;e<i;e++)n+=o.get(e,s)*o.get(e,r);for(n=-n/o.get(s,s),e=s;e<i;e++)o.set(e,r,o.get(e,r)+n*o.get(e,s))}}a[s]=-t}this.QR=o,this.Rdiag=a}solve(t){t=Ut.checkMatrix(t);let e=this.QR,r=e.rows;if(t.rows!==r)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let s,n,o,i,h=t.columns,a=t.clone(),l=e.columns;for(o=0;o<l;o++)for(n=0;n<h;n++){for(i=0,s=o;s<r;s++)i+=e.get(s,o)*a.get(s,n);for(i=-i/e.get(o,o),s=o;s<r;s++)a.set(s,n,a.get(s,n)+i*e.get(s,o))}for(o=l-1;o>=0;o--){for(n=0;n<h;n++)a.set(o,n,a.get(o,n)/this.Rdiag[o]);for(s=0;s<o;s++)for(n=0;n<h;n++)a.set(s,n,a.get(s,n)-a.get(o,n)*e.get(s,o))}return a.subMatrix(0,l-1,0,h-1)}isFullRank(){let t=this.QR.columns;for(let e=0;e<t;e++)if(0===this.Rdiag[e])return!1;return!0}get upperTriangularMatrix(){let t,e,r=this.QR,s=r.columns,n=new Ut(s,s);for(t=0;t<s;t++)for(e=0;e<s;e++)t<e?n.set(t,e,r.get(t,e)):t===e?n.set(t,e,this.Rdiag[t]):n.set(t,e,0);return n}get orthogonalMatrix(){let t,e,r,s,n=this.QR,o=n.rows,i=n.columns,h=new Ut(o,i);for(r=i-1;r>=0;r--){for(t=0;t<o;t++)h.set(t,r,0);for(h.set(r,r,1),e=r;e<i;e++)if(0!==n.get(r,r)){for(s=0,t=r;t<o;t++)s+=n.get(t,r)*h.get(t,e);for(s=-s/n.get(r,r),t=r;t<o;t++)h.set(t,e,h.get(t,e)+s*n.get(t,r))}}return h}}class Jt{constructor(t,e={}){if((t=Gt.checkMatrix(t)).isEmpty())throw new Error("Matrix must be non-empty");let r=t.rows,s=t.columns;const{computeLeftSingularVectors:n=!0,computeRightSingularVectors:o=!0,autoTranspose:i=!1}=e;let h,a=Boolean(n),l=Boolean(o),u=!1;if(r<s)if(i){h=t.transpose(),r=h.rows,s=h.columns,u=!0;let e=a;a=l,l=e}else h=t.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else h=t.clone();let c=Math.min(r,s),f=Math.min(r+1,s),m=new Float64Array(f),g=new Ut(r,c),p=new Ut(s,s),d=new Float64Array(s),w=new Float64Array(r),y=new Float64Array(f);for(let t=0;t<f;t++)y[t]=t;let b=Math.min(r-1,s),M=Math.max(0,Math.min(s-2,r)),x=Math.max(b,M);for(let t=0;t<x;t++){if(t<b){m[t]=0;for(let e=t;e<r;e++)m[t]=Kt(m[t],h.get(e,t));if(0!==m[t]){h.get(t,t)<0&&(m[t]=-m[t]);for(let e=t;e<r;e++)h.set(e,t,h.get(e,t)/m[t]);h.set(t,t,h.get(t,t)+1)}m[t]=-m[t]}for(let e=t+1;e<s;e++){if(t<b&&0!==m[t]){let s=0;for(let n=t;n<r;n++)s+=h.get(n,t)*h.get(n,e);s=-s/h.get(t,t);for(let n=t;n<r;n++)h.set(n,e,h.get(n,e)+s*h.get(n,t))}d[e]=h.get(t,e)}if(a&&t<b)for(let e=t;e<r;e++)g.set(e,t,h.get(e,t));if(t<M){d[t]=0;for(let e=t+1;e<s;e++)d[t]=Kt(d[t],d[e]);if(0!==d[t]){d[t+1]<0&&(d[t]=0-d[t]);for(let e=t+1;e<s;e++)d[e]/=d[t];d[t+1]+=1}if(d[t]=-d[t],t+1<r&&0!==d[t]){for(let e=t+1;e<r;e++)w[e]=0;for(let e=t+1;e<r;e++)for(let r=t+1;r<s;r++)w[e]+=d[r]*h.get(e,r);for(let e=t+1;e<s;e++){let s=-d[e]/d[t+1];for(let n=t+1;n<r;n++)h.set(n,e,h.get(n,e)+s*w[n])}}if(l)for(let e=t+1;e<s;e++)p.set(e,t,d[e])}}let E=Math.min(s,r+1);if(b<s&&(m[b]=h.get(b,b)),r<E&&(m[E-1]=0),M+1<E&&(d[M]=h.get(M,E-1)),d[E-1]=0,a){for(let t=b;t<c;t++){for(let e=0;e<r;e++)g.set(e,t,0);g.set(t,t,1)}for(let t=b-1;t>=0;t--)if(0!==m[t]){for(let e=t+1;e<c;e++){let s=0;for(let n=t;n<r;n++)s+=g.get(n,t)*g.get(n,e);s=-s/g.get(t,t);for(let n=t;n<r;n++)g.set(n,e,g.get(n,e)+s*g.get(n,t))}for(let e=t;e<r;e++)g.set(e,t,-g.get(e,t));g.set(t,t,1+g.get(t,t));for(let e=0;e<t-1;e++)g.set(e,t,0)}else{for(let e=0;e<r;e++)g.set(e,t,0);g.set(t,t,1)}}if(l)for(let t=s-1;t>=0;t--){if(t<M&&0!==d[t])for(let e=t+1;e<s;e++){let r=0;for(let n=t+1;n<s;n++)r+=p.get(n,t)*p.get(n,e);r=-r/p.get(t+1,t);for(let n=t+1;n<s;n++)p.set(n,e,p.get(n,e)+r*p.get(n,t))}for(let e=0;e<s;e++)p.set(e,t,0);p.set(t,t,1)}let S=E-1,v=0,N=Number.EPSILON;for(;E>0;){let t,e;for(t=E-2;t>=-1&&-1!==t;t--){const e=Number.MIN_VALUE+N*Math.abs(m[t]+Math.abs(m[t+1]));if(Math.abs(d[t])<=e||Number.isNaN(d[t])){d[t]=0;break}}if(t===E-2)e=4;else{let r;for(r=E-1;r>=t&&r!==t;r--){let e=(r!==E?Math.abs(d[r]):0)+(r!==t+1?Math.abs(d[r-1]):0);if(Math.abs(m[r])<=N*e){m[r]=0;break}}r===t?e=3:r===E-1?e=1:(e=2,t=r)}switch(t++,e){case 1:{let e=d[E-2];d[E-2]=0;for(let r=E-2;r>=t;r--){let n=Kt(m[r],e),o=m[r]/n,i=e/n;if(m[r]=n,r!==t&&(e=-i*d[r-1],d[r-1]=o*d[r-1]),l)for(let t=0;t<s;t++)n=o*p.get(t,r)+i*p.get(t,E-1),p.set(t,E-1,-i*p.get(t,r)+o*p.get(t,E-1)),p.set(t,r,n)}break}case 2:{let e=d[t-1];d[t-1]=0;for(let s=t;s<E;s++){let n=Kt(m[s],e),o=m[s]/n,i=e/n;if(m[s]=n,e=-i*d[s],d[s]=o*d[s],a)for(let e=0;e<r;e++)n=o*g.get(e,s)+i*g.get(e,t-1),g.set(e,t-1,-i*g.get(e,s)+o*g.get(e,t-1)),g.set(e,s,n)}break}case 3:{const e=Math.max(Math.abs(m[E-1]),Math.abs(m[E-2]),Math.abs(d[E-2]),Math.abs(m[t]),Math.abs(d[t])),n=m[E-1]/e,o=m[E-2]/e,i=d[E-2]/e,h=m[t]/e,u=d[t]/e,c=((o+n)*(o-n)+i*i)/2,f=n*i*(n*i);let w=0;0===c&&0===f||(w=c<0?0-Math.sqrt(c*c+f):Math.sqrt(c*c+f),w=f/(c+w));let y=(h+n)*(h-n)+w,b=h*u;for(let e=t;e<E-1;e++){let n=Kt(y,b);0===n&&(n=Number.MIN_VALUE);let o=y/n,i=b/n;if(e!==t&&(d[e-1]=n),y=o*m[e]+i*d[e],d[e]=o*d[e]-i*m[e],b=i*m[e+1],m[e+1]=o*m[e+1],l)for(let t=0;t<s;t++)n=o*p.get(t,e)+i*p.get(t,e+1),p.set(t,e+1,-i*p.get(t,e)+o*p.get(t,e+1)),p.set(t,e,n);if(n=Kt(y,b),0===n&&(n=Number.MIN_VALUE),o=y/n,i=b/n,m[e]=n,y=o*d[e]+i*m[e+1],m[e+1]=-i*d[e]+o*m[e+1],b=i*d[e+1],d[e+1]=o*d[e+1],a&&e<r-1)for(let t=0;t<r;t++)n=o*g.get(t,e)+i*g.get(t,e+1),g.set(t,e+1,-i*g.get(t,e)+o*g.get(t,e+1)),g.set(t,e,n)}d[E-2]=y,v+=1;break}case 4:if(m[t]<=0&&(m[t]=m[t]<0?-m[t]:0,l))for(let e=0;e<=S;e++)p.set(e,t,-p.get(e,t));for(;t<S&&!(m[t]>=m[t+1]);){let e=m[t];if(m[t]=m[t+1],m[t+1]=e,l&&t<s-1)for(let r=0;r<s;r++)e=p.get(r,t+1),p.set(r,t+1,p.get(r,t)),p.set(r,t,e);if(a&&t<r-1)for(let s=0;s<r;s++)e=g.get(s,t+1),g.set(s,t+1,g.get(s,t)),g.set(s,t,e);t++}v=0,E--}}if(u){let t=p;p=g,g=t}this.m=r,this.n=s,this.s=m,this.U=g,this.V=p}solve(t){let e=t,r=this.threshold,s=this.s.length,n=Ut.zeros(s,s);for(let t=0;t<s;t++)Math.abs(this.s[t])<=r?n.set(t,t,0):n.set(t,t,1/this.s[t]);let o=this.U,i=this.rightSingularVectors,h=i.mmul(n),a=i.rows,l=o.rows,u=Ut.zeros(a,l);for(let t=0;t<a;t++)for(let e=0;e<l;e++){let r=0;for(let n=0;n<s;n++)r+=h.get(t,n)*o.get(e,n);u.set(t,e,r)}return u.mmul(e)}solveForDiagonal(t){return this.solve(Ut.diag(t))}inverse(){let t=this.V,e=this.threshold,r=t.rows,s=t.columns,n=new Ut(r,this.s.length);for(let o=0;o<r;o++)for(let r=0;r<s;r++)Math.abs(this.s[r])>e&&n.set(o,r,t.get(o,r)/this.s[r]);let o=this.U,i=o.rows,h=o.columns,a=new Ut(r,i);for(let t=0;t<r;t++)for(let e=0;e<i;e++){let r=0;for(let s=0;s<h;s++)r+=n.get(t,s)*o.get(e,s);a.set(t,e,r)}return a}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let t=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,e=0,r=this.s;for(let s=0,n=r.length;s<n;s++)r[s]>t&&e++;return e}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return Ut.diag(this.s)}}function Xt(t,e,r,s,n){let o=r*s*s,i=Ut.eye(e.length,e.length,o);const h=n(e);let a=new Float64Array(t.x.length);for(let e=0;e<t.x.length;e++)a[e]=h(t.x[e]);let l=function(t,e,r,s,n){const o=r.length,i=t.x.length;let h=new Array(o);for(let a=0;a<o;a++){h[a]=new Array(i);let o=r.slice();o[a]+=s;let l=n(o);for(let r=0;r<i;r++)h[a][r]=e[r]-l(t.x[r])}return new Ut(h)}(t,a,e,s,n),u=function(t,e){const r=t.x.length;let s=new Array(r);for(let n=0;n<r;n++)s[n]=[t.y[n]-e[n]];return new Ut(s)}(t,a),c=function(t,e=!1){return t=Gt.checkMatrix(t),e?new Jt(t).inverse():function(t,e,r=!1){return t=Gt.checkMatrix(t),e=Gt.checkMatrix(e),r?new Jt(t).solve(e):t.isSquare()?new Yt(t).solve(e):new Ht(t).solve(e)}(t,Ut.eye(t.rows))}(i.add(l.mmul(l.transpose())));return(e=(e=new Ut([e])).sub(c.mmul(l).mmul(u).mul(s).transpose())).to1DArray()}const Qt=1e-5,Zt=.001;class te{get neighbors(){return this.nNeighbors}constructor(t={}){this.learningRate=1,this.localConnectivity=1,this.minDist=.1,this.nComponents=2,this.nEpochs=0,this.nNeighbors=15,this.negativeSampleRate=5,this.random=Math.random,this.repulsionStrength=1,this.setOpMixRatio=1,this.spread=1,this.transformQueueSize=4,this.targetMetric="categorical",this.targetWeight=.5,this.targetNNeighbors=this.nNeighbors,this.distanceFn=ee,this.isInitialized=!1,this.rpForest=[],this.embedding=[],this.optimizationState=new re;const e=e=>{void 0!==t[e]&&(this[e]=t[e])};e("distanceFn"),e("learningRate"),e("localConnectivity"),e("minDist"),e("nComponents"),e("nEpochs"),e("nNeighbors"),e("negativeSampleRate"),e("random"),e("repulsionStrength"),e("setOpMixRatio"),e("spread"),e("transformQueueSize")}fit(t){return this.initializeFit(t),this.optimizeLayout(),this.embedding}async fitAsync(t,e=(()=>!0)){return this.initializeFit(t),await this.optimizeLayoutAsync(e),this.embedding}setSupervisedProjection(t,e={}){this.Y=t,this.targetMetric=e.targetMetric||this.targetMetric,this.targetWeight=e.targetWeight||this.targetWeight,this.targetNNeighbors=e.targetNNeighbors||this.targetNNeighbors}setPrecomputedKNN(t,e){this.knnIndices=t,this.knnDistances=e}initializeFit(t){if(t.length<=this.nNeighbors)throw new Error(`Not enough data points (${t.length}) to create nNeighbors: ${this.nNeighbors}. Add more data points or adjust the configuration.`);if(this.X===t&&this.isInitialized)return this.getNEpochs();if(this.X=t,!this.knnIndices&&!this.knnDistances){const e=this.nearestNeighbors(t);this.knnIndices=e.knnIndices,this.knnDistances=e.knnDistances}this.graph=this.fuzzySimplicialSet(t,this.nNeighbors,this.setOpMixRatio),this.makeSearchFns(),this.searchGraph=this.makeSearchGraph(t),this.processGraphForSupervisedProjection();const{head:e,tail:r,epochsPerSample:s}=this.initializeSimplicialSetEmbedding();return this.optimizationState.head=e,this.optimizationState.tail=r,this.optimizationState.epochsPerSample=s,this.initializeOptimization(),this.prepareForOptimizationLoop(),this.isInitialized=!0,this.getNEpochs()}makeSearchFns(){const{initFromTree:t,initFromRandom:e}=(r=this.distanceFn,{initFromRandom:function(t,e,s,n,o){for(let i=0;i<s.length;i++){const h=U(t,e.length,o);for(let t=0;t<h.length;t++)h[t]<0||H(n,i,r(e[h[t]],s[i]),h[t],1)}},initFromTree:function(t,e,s,n,o){for(let i=0;i<s.length;i++){const h=bt(s[i],t,o);for(let t=0;t<h.length;t++){if(h[t]<0)return;H(n,i,r(e[h[t]],s[i]),h[t],1)}}}});var r;this.initFromTree=t,this.initFromRandom=e,this.search=function(t){return function(e,r,s,n){const{indices:o,indptr:i}=ct(r);for(let r=0;r<n.length;r++){const h=new Set(s[0][r]);for(;;){const a=tt(s,r);if(-1===a)break;const l=o.slice(i[a],i[a+1]);for(const o of l)o===a||-1===o||h.has(o)||(J(s,r,t(e[o],n[r]),o,1),h.add(o))}}return s}}(this.distanceFn)}makeSearchGraph(t){const e=this.knnIndices,r=this.knnDistances,s=[t.length,t.length],n=new et([],[],[],s);for(let t=0;t<e.length;t++){const s=e[t],o=r[t];for(let e=0;e<s.length;e++){const r=s[e],i=o[e];i>0&&n.set(t,r,i)}}return ut(n,rt(n),((t,e)=>t>e?t:e))}transform(t){const e=this.X;if(void 0===e||0===e.length)throw new Error("No data has been fit.");let r=Math.floor(this.nNeighbors*this.transformQueueSize);r=Math.min(e.length,r);const s=function(t,e,r,s,n,o,i){const h=Y(r.length,s);if(n(s,e,r,h,i),t)for(let s of t)o(s,e,r,h,i);return h}(this.rpForest,e,t,r,this.initFromRandom,this.initFromTree,this.random),n=this.search(e,this.searchGraph,s,t);let{indices:o,weights:i}=Q(n);o=o.map((t=>t.slice(0,this.nNeighbors))),i=i.map((t=>t.slice(0,this.nNeighbors)));const h=Math.max(0,this.localConnectivity-1),{sigmas:a,rhos:l}=this.smoothKNNDistance(i,this.nNeighbors,h),{rows:u,cols:c,vals:f}=this.computeMembershipStrengths(o,i,a,l),m=[t.length,e.length];let g=new et(u,c,f,m);const p=ct(at(g,"l1")),d=t.length,w=function(t,e,r){const s=$(t.length).map((t=>$(r[0].length)));for(let n=0;n<t.length;n++)for(let o=0;o<t[0].length;o++)for(let i=0;i<r[0].length;i++){const h=t[n][o];s[n][i]+=e[n][o]*r[h][i]}return s}(G(p.indices,d,this.nNeighbors),G(p.values,d,this.nNeighbors),this.embedding),y=this.nEpochs?this.nEpochs/3:g.nRows<=1e4?100:30,b=g.getValues().reduce(((t,e)=>e>t?e:t),0);g=g.map((t=>t<b/y?0:t)),g=ht(g);const M=this.makeEpochsPerSample(g.getValues(),y),x=g.getRows(),E=g.getCols();return this.assignOptimizationStateParameters({headEmbedding:w,tailEmbedding:this.embedding,head:x,tail:E,currentEpoch:0,nEpochs:y,nVertices:g.getDims()[1],epochsPerSample:M}),this.prepareForOptimizationLoop(),this.optimizeLayout()}processGraphForSupervisedProjection(){const{Y:t,X:e}=this;if(t){if(t.length!==e.length)throw new Error("Length of X and y must be equal");if("categorical"===this.targetMetric){const e=this.targetWeight<1?1/(1-this.targetWeight)*2.5:1e12;this.graph=this.categoricalSimplicialSetIntersection(this.graph,t,e)}}}step(){const{currentEpoch:t}=this.optimizationState;return t<this.getNEpochs()&&this.optimizeLayoutStep(t),this.optimizationState.currentEpoch}getEmbedding(){return this.embedding}nearestNeighbors(t){const{distanceFn:e,nNeighbors:r}=this,s=function(t,e){return function(r,s,n,o=10,i=50,h=.001,a=.5,l=!0){const u=r.length,c=Y(r.length,n);for(let s=0;s<r.length;s++){const o=K(n,r.length,e);for(let e=0;e<o.length;e++){const n=t(r[s],r[o[e]]);H(c,s,n,o[e],1),H(c,o[e],n,s,1)}}if(l)for(let e=0;e<s.length;e++)for(let n=0;n<s[e].length&&!(s[e][n]<0);n++)for(let o=n+1;o<s[e].length&&!(s[e][o]<0);o++){const i=t(r[s[e][n]],r[s[e][o]]);H(c,s[e][n],i,s[e][o],1),H(c,s[e][o],i,s[e][n],1)}for(let s=0;s<o;s++){const s=X(c,u,n,i,e);let o=0;for(let n=0;n<u;n++)for(let h=0;h<i;h++){let l=Math.floor(s[0][n][h]);if(!(l<0||O(e)<a))for(let e=0;e<i;e++){const i=Math.floor(s[0][n][e]),a=s[2][n][h],u=s[2][n][e];if(i<0||!a&&!u)continue;const f=t(r[l],r[i]);o+=H(c,l,f,i,1),o+=H(c,i,f,l,1)}}if(o<=h*n*r.length)break}return Q(c)}}(e,this.random),n=5+Math.floor(.5==(o=t.length**.5/20)?0:Math.round(o));var o;const i=Math.max(5,Math.floor(Math.round((t=>Math.log(t)/Math.log(2))(t.length))));this.rpForest=mt(t,r,n,this.random);const h=function(t){if(t.length>0){const e=[];for(let r of t)e.push(...r.indices);return e}return[[-1]]}(this.rpForest),{indices:a,weights:l}=s(t,h,r,i);return{knnIndices:a,knnDistances:l}}fuzzySimplicialSet(t,e,r=1){const{knnIndices:s=[],knnDistances:n=[],localConnectivity:o}=this,{sigmas:i,rhos:h}=this.smoothKNNDistance(n,e,o),{rows:a,cols:l,vals:u}=this.computeMembershipStrengths(s,n,i,h),c=[t.length,t.length],f=new et(a,l,u,c),m=rt(f),g=st(f,m),p=ot(nt(f,m),g);return nt(it(p,r),it(g,1-r))}categoricalSimplicialSetIntersection(t,e,r,s=1){let n=function(t,e,r=1,s=5){return t.map(((t,n,o)=>-1===e[n]||-1===e[o]?t*Math.exp(-r):e[n]!==e[o]?t*Math.exp(-s):t))}(t,e,s,r);return n=ht(n),function(t){const e=rt(t=at(t,"max"));return ht(t=nt(t,ot(e,st(e,t))))}(n)}smoothKNNDistance(t,e,r=1,s=64,n=1){const o=Math.log(e)/Math.log(2)*n,i=$(t.length),h=$(t.length);for(let e=0;e<t.length;e++){let n=0,a=1/0,l=1;const u=t[e],c=u.filter((t=>t>0));if(c.length>=r){let t=Math.floor(r),s=r-t;t>0?(i[e]=c[t-1],s>Qt&&(i[e]+=s*(c[t]-c[t-1]))):i[e]=s*c[0]}else c.length>0&&(i[e]=W(c));for(let r=0;r<s;r++){let r=0;for(let s=1;s<t[e].length;s++){const n=t[e][s]-i[e];r+=n>0?Math.exp(-n/l):1}if(Math.abs(r-o)<Qt)break;r>o?(a=l,l=(n+a)/2):(n=l,a===1/0?l*=2:l=(n+a)/2)}if(h[e]=l,i[e]>0){const t=B(u);h[e]<Zt*t&&(h[e]=Zt*t)}else{const r=B(t.map(B));h[e]<Zt*r&&(h[e]=Zt*r)}}return{sigmas:h,rhos:i}}computeMembershipStrengths(t,e,r,s){const n=t.length,o=t[0].length,i=$(n*o),h=$(n*o),a=$(n*o);for(let l=0;l<n;l++)for(let n=0;n<o;n++){let u=0;-1!==t[l][n]&&(u=t[l][n]===l?0:e[l][n]-s[l]<=0?1:Math.exp(-(e[l][n]-s[l])/r[l]),i[l*o+n]=l,h[l*o+n]=t[l][n],a[l*o+n]=u)}return{rows:i,cols:h,vals:a}}initializeSimplicialSetEmbedding(){const t=this.getNEpochs(),{nComponents:e}=this,r=this.graph.getValues();let s=0;for(let t=0;t<r.length;t++){const e=r[t];s<r[t]&&(s=e)}const n=this.graph.map((e=>e<s/t?0:e));this.embedding=$(n.nRows).map((()=>$(e).map((()=>20*O(this.random)-10))));const o=[],i=[],h=[],a=n.getAll();for(let t=0;t<a.length;t++){const e=a[t];e.value&&(o.push(e.value),h.push(e.row),i.push(e.col))}return{head:i,tail:h,epochsPerSample:this.makeEpochsPerSample(o,t)}}makeEpochsPerSample(t,e){const r=L(t.length,-1),s=W(t),n=t.map((t=>t/s*e));return n.forEach(((t,s)=>{t>0&&(r[s]=e/n[s])})),r}assignOptimizationStateParameters(t){Object.assign(this.optimizationState,t)}prepareForOptimizationLoop(){const{repulsionStrength:t,learningRate:e,negativeSampleRate:r}=this,{epochsPerSample:s,headEmbedding:n,tailEmbedding:o}=this.optimizationState,i=n[0].length,h=n.length===o.length,a=s.map((t=>t/r)),l=[...a],u=[...s];this.assignOptimizationStateParameters({epochOfNextSample:u,epochOfNextNegativeSample:l,epochsPerNegativeSample:a,moveOther:h,initialAlpha:e,alpha:e,gamma:t,dim:i})}initializeOptimization(){const t=this.embedding,e=this.embedding,{head:r,tail:s,epochsPerSample:n}=this.optimizationState,o=this.getNEpochs(),i=this.graph.nCols,{a:h,b:a}=function(t,e){const r=function(t,e,r){return j(300).map(((t,r)=>0+r*((e-0)/299)))}(0,3*t).map((t=>t<e?1:t)),s=$(r.length).map(((s,n)=>r[n]>=e?Math.exp(-(r[n]-e)/t):s)),n={x:r,y:s},{parameterValues:o}=function(t,e,r={}){let{maxIterations:s=100,gradientDifference:n=.1,damping:o=0,errorTolerance:i=.01,minValues:h,maxValues:a,initialValues:l}=r;if(o<=0)throw new Error("The damping option must be a positive number");if(!t.x||!t.y)throw new Error("The data parameter must have x and y elements");if(!xt(t.x)||t.x.length<2||!xt(t.y)||t.y.length<2)throw new Error("The data parameter elements must be an array with more than 2 points");if(t.x.length!==t.y.length)throw new Error("The data parameter elements must have the same size");let u=l||new Array(e.length).fill(1),c=u.length;if(a=a||new Array(c).fill(Number.MAX_SAFE_INTEGER),h=h||new Array(c).fill(Number.MIN_SAFE_INTEGER),a.length!==h.length)throw new Error("minValues and maxValues must be the same size");if(!xt(u))throw new Error("initialValues must be an array");let f,m=Et(t,u,e),g=m<=i;for(f=0;f<s&&!g;f++){u=Xt(t,u,o,n,e);for(let t=0;t<c;t++)u[t]=Math.min(Math.max(h[t],u[t]),a[t]);if(m=Et(t,u,e),isNaN(m))break;g=m<=i}return{parameterValues:u,parameterError:m,iterations:f}}(n,(([t,e])=>r=>1/(1+t*r**(2*e))),{damping:1.5,initialValues:[.5,.5],gradientDifference:.1,maxIterations:100,errorTolerance:.01}),[i,h]=o;return{a:i,b:h}}(this.spread,this.minDist);this.assignOptimizationStateParameters({headEmbedding:t,tailEmbedding:e,head:r,tail:s,epochsPerSample:n,a:h,b:a,nEpochs:o,nVertices:i})}optimizeLayoutStep(t){const{optimizationState:e}=this,{head:r,tail:s,headEmbedding:n,tailEmbedding:o,epochsPerSample:i,epochOfNextSample:h,epochOfNextNegativeSample:a,epochsPerNegativeSample:l,moveOther:u,initialAlpha:c,alpha:f,gamma:m,a:g,b:p,dim:d,nEpochs:w,nVertices:y}=e;for(let e=0;e<i.length;e++){if(h[e]>t)continue;const c=r[e],w=s[e],b=n[c],M=o[w],x=ne(b,M);let E=0;x>0&&(E=-2*g*p*Math.pow(x,p-1),E/=g*Math.pow(x,p)+1);for(let t=0;t<d;t++){const e=se(E*(b[t]-M[t]),4);b[t]+=e*f,u&&(M[t]+=-e*f)}h[e]+=i[e];const S=Math.floor((t-a[e])/l[e]);for(let t=0;t<S;t++){const t=V(y,this.random),e=o[t],r=ne(b,e);let s=0;if(r>0)s=2*m*p,s/=(.001+r)*(g*Math.pow(r,p)+1);else if(c===t)continue;for(let t=0;t<d;t++){let r=4;s>0&&(r=se(s*(b[t]-e[t]),4)),b[t]+=r*f}}a[e]+=S*l[e]}return e.alpha=c*(1-t/w),e.currentEpoch+=1,n}optimizeLayoutAsync(t=(()=>!0)){return new Promise(((e,r)=>{const s=async()=>{try{const{nEpochs:r,currentEpoch:n}=this.optimizationState;this.embedding=this.optimizeLayoutStep(n);const o=this.optimizationState.currentEpoch,i=!1===t(o),h=o===r;if(i||h)return e(h);setTimeout((()=>s()),0)}catch(t){r(t)}};setTimeout((()=>s()),0)}))}optimizeLayout(t=(()=>!0)){let e=!1,r=[];for(;!e;){const{nEpochs:s,currentEpoch:n}=this.optimizationState;r=this.optimizeLayoutStep(n);const o=this.optimizationState.currentEpoch,i=!1===t(o);e=o===s||i}return r}getNEpochs(){const t=this.graph;if(this.nEpochs>0)return this.nEpochs;if(!t)return 200;const e=t.nRows;return e<=2500?500:e<=5e3?400:e<=7500?300:200}}function ee(t,e){return Math.abs(t-e)}class re{constructor(){this.currentEpoch=0,this.headEmbedding=[],this.tailEmbedding=[],this.head=[],this.tail=[],this.epochsPerSample=[],this.epochOfNextSample=[],this.epochOfNextNegativeSample=[],this.epochsPerNegativeSample=[],this.moveOther=!0,this.initialAlpha=1,this.alpha=1,this.gamma=1,this.a=1.5769434603113077,this.b=.8950608779109733,this.dim=2,this.nEpochs=500,this.nVertices=0}}function se(t,e){return t>e?e:t<-e?-e:t}function ne(t,e){let r=0;for(let s=0;s<t.length;s++)r+=Math.pow(t[s]-e[s],2);return r}var oe,ie=r(6814);class he{get data(){return this._data}get size(){return this._size}constructor(t,e){if(null==e){if(null==t)throw new Error("Arguments error: data or size is required.");if(this._data=t,this._size=(1+Math.sqrt(1+8*this._data.length))/2,this._size!=Math.floor(this._size))throw new Error(`Invalid data length ${this._data.length} leads to non integer size ${this._size}`)}else{this._size=e;const r=e*(e-1)/2;if(t){if(t.length!=r)throw new Error(`Invalid data length. Observations size ${e} requires data length ${r}.`);this._data=t}else this._data=new Float32Array(r)}}_linearizeIJ(t,e){if(!(t<e))throw new Error("i must be less than j");return this._size*t+e-Math.floor((t+2)*(t+1)/2)}get(t,e){return t==e?0:t<e?this._data[this._linearizeIJ(t,e)]:this._data[this._linearizeIJ(e,t)]}set(t,e,r){this._data[this._linearizeIJ(t,e)]=r}static calc(t,e){const r=t.length,s=new he(void 0,r);for(let n=0;n<r;n++)for(let o=n+1;o<r;o++)s.set(n,o,(0,ie.k)(t[n])||(0,ie.k)(t[o])?1:e(t[n],t[o]));return s}square(){for(let t=0;t<this._data.length;t++)this._data[t]=this._data[t]**2}add(t){if(this._size!==t._size)throw new Error(`Matrices must have the same size. This size: ${this._size}, other size: ${t._size}`);for(let e=0;e<this._data.length;e++)this._data[e]+=t._data[e]}sqrt(){for(let t=0;t<this._data.length;t++)this._data[t]=Math.sqrt(this._data[t])}normalize(){let t=0,e=this._data[0];for(let r=0;r<this._data.length;r++)this._data[r]<t&&(t=this._data[r]),this._data[r]>e&&(e=this._data[r]);const r=e-t;for(let s=0;s<this._data.length;s++)this._data[s]=0===r?this._data[s]-t:(this._data[s]-t)/(e-t)}}class ae{constructor(){this._workerCount=Math.max(navigator.hardwareConcurrency-2,1)}async calc(t,e,s,n={}){const o=t.length*(t.length-1)/2,i=Math.floor(o/this._workerCount),h=t.length>2e4?await this.getMinimalThreshold(t,e,n):0;s<h&&(console.log(`using threshold ${h}`),s=h),n.threshold=s;const a=new Array(this._workerCount),l=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(r.p+r.u(381),r.b))));for(let r=0;r<this._workerCount;r++)a[r]=new Promise(((h,a)=>{const u=r*i,c=r===this._workerCount-1?o:(r+1)*i;c<=u&&h({i:new Int32Array(0),j:new Int32Array(0),distance:new Float32Array(0),idx:r}),l[r].postMessage({values:t,startIdx:u,endIdx:c,threshold:s,fnName:e,opts:n}),l[r].onmessage=({data:{error:t,i:e,j:s,distance:n}})=>{t?(l[r].terminate(),a(t)):(l[r].terminate(),h({i:e,j:s,distance:n,idx:r}))}}));const u=await Promise.all(a),c=u.reduce(((t,e)=>t+e.i.length),0),f=new Int32Array(c),m=new Int32Array(c),g=new Float32Array(c);let p=0;for(const t of u)f.set(t.i,p),m.set(t.j,p),g.set(t.distance,p),p+=t.i.length;return{i:f,j:m,distance:g}}async getMinimalThreshold(t,e,s={}){const n=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(r.p+r.u(770),r.b)))),o=t.slice();for(let t=o.length-1;t>0;t--){const e=Math.floor(Math.random()*(t+1));[o[t],o[e]]=[o[e],o[t]]}try{const r=t.length*(t.length-1)/2,i=Math.floor(r/this._workerCount),h=Math.floor(Math.min(r/1e3,1e6)/this._workerCount),a=new Array(this._workerCount);for(let t=0;t<this._workerCount;t++)a[t]=new Promise(((a,l)=>{const u=t*i,c=t===this._workerCount-1?r:(t+1)*i;n[t].postMessage({values:o,startIdx:u,endIdx:c,sampleLength:h,fnName:e,opts:s}),n[t].onmessage=({data:{error:e,distance:r}})=>{n[t].terminate(),e?l(e):a({distance:r})}}));const l=await Promise.all(a),u=l.reduce(((t,e)=>t+e.distance.length),0),c=new Float32Array(u);let f=0;for(const t of l)c.set(t.distance,f),f+=t.distance.length;c.sort();let m=1-c[Math.floor(7e7/r*c.length)];return m=Math.max(m,.3),m}catch(t){return n?.forEach((t=>t?.terminate())),console.error(t),.5}}static calcSync(t,e,r,s){const n=[],o=[],i=[];let h=0,a=0,l=0;const u=t.length*(t.length-1)/2;for(;h<u;){const u=(0,ie.k)(t[a])||(0,ie.k)(t[l])?1:r(t[a],t[l]);(Object.values(y).some((t=>t===e))?1/(1+u):1-u)>=s&&(n.push(a),o.push(l),i.push(u)),h++,l++,l===t.length&&(a++,l=a+1)}return{i:new Int32Array(n),j:new Int32Array(o),distance:new Float32Array(i)}}}!function(t){t.UMAP="UMAP",t.T_SNE="t-SNE"}(oe||(oe={}));class le{constructor(t){this.data=t.data}}const ue={UMAP:class extends le{constructor(t){super(t),h("distanceFname"in t),h("distanceFn"in t),this.distanceFnArgs=t?.distanceFnArgs,this.distanceFn=t.distanceFn,this.usingSparseMatrix=!!t.usingSparseMatrix||!!t.sparseMatrix,this.sparseMatrixThreshold=t.sparseMatrixThreshold??.8,this.transferedSparseMatrix=t.sparseMatrix,this.progressFunc=t.progressFunc,this.distanceFname=t.distanceFname,this.dmIndexFunc=c(this.data.length),this.vectors=new Array(this.data.length).fill(0).map(((t,e)=>e)),this.usingDistanceMatrix=!(!t.preCalculateDistanceMatrix&&this.data.length>2e4||this.usingSparseMatrix),this.usingDistanceMatrix?t.distanceFn=this._encodedDistanceMatrix.bind(this):this.usingSparseMatrix?t.distanceFn=this._encodedSparseMatrix.bind(this):t.distanceFn=this._encodedDistance.bind(this),this.data.length<15&&(t.nNeighbors=this.data.length-1),this.reducer=new te(t)}_encodedDistanceMatrix(t,e){return t===e?0:t>e?this.distanceMatrix[this.dmIndexFunc(e,t)]:this.distanceMatrix[this.dmIndexFunc(t,e)]}_encodedSparseMatrix(t,e){return this.sparseMatrix.get(t)?.get(e)??this.sparseMatrix.get(e)?.get(t)??1}_encodedDistance(t,e){return this.distanceFn(this.data[t],this.data[e])}async transform(t){if(this.usingDistanceMatrix){if(this.distanceMatrix=t?await(async()=>{const t=new f(!0,!1);try{const e=await t.calc(this.data,this.distanceFname,!1,this.distanceFnArgs);return t.terminate(),e}catch(e){throw t.terminate(),e}})():(()=>he.calc(this.data,((t,e)=>this.distanceFn(t,e))).data)(),this.distanceMatrix&&!D(this.distanceFname)){const t=function(t,e,r){function s(t,e,r,s){if(r>t[t.length-1])return;let n=t.length-2;for(n=t.length-2;n>=0&&!(r>t[n]);n--);t.splice(t.length-1,1),t.splice(n+1,0,r),e.splice(e.length-1,1),e.splice(n+1,0,s)}console.time("knnGraph");const n=new Array(r).fill(null).map((()=>new Array(e).fill(1))),o=new Array(r).fill(null).map((()=>new Array(e).fill(1)));let i=0,h=1;for(let e=0;e<t.length;e++)s(o[i],n[i],t[e],h),s(o[h],n[h],t[e],i),h++,h>=r&&(i++,h=i+1);return console.timeEnd("knnGraph"),{knnIndexes:n,knnDistances:o}}(this.distanceMatrix,this.reducer.neighbors,this.data.length);this.reducer.setPrecomputedKNN(t.knnIndexes,t.knnDistances)}}else if(this.usingSparseMatrix){console.time("sparse matrix");let t=this.transferedSparseMatrix??await(new ae).calc(this.data,this.distanceFname,this.sparseMatrixThreshold,this.distanceFnArgs);if(console.timeEnd("sparse matrix"),!D(this.distanceFname)){const e=function(t,e,r,s,n){function o(t,e,r,s){if(r>t[t.length-1])return;let n=t.length-2;for(n=t.length-2;n>=0&&!(r>t[n]);n--);t.splice(t.length-1,1),t.splice(n+1,0,r),e.splice(e.length-1,1),e.splice(n+1,0,s)}console.time("knnGraph");const i=new Array(n).fill(null).map((()=>new Array(s).fill(1))),h=new Array(n).fill(null).map((()=>new Array(s).fill(1)));for(let s=0;s<t.length;s++)o(h[t[s]],i[t[s]],r[s],e[s]),o(h[e[s]],i[e[s]],r[s],t[s]);return console.timeEnd("knnGraph"),{knnIndexes:i,knnDistances:h}}(t.i,t.j,t.distance,this.reducer.neighbors,this.data.length);this.reducer.setPrecomputedKNN(e.knnIndexes,e.knnDistances)}console.time("sparse matrix to map"),this.sparseMatrix=new Map;for(let e=0;e<t.i.length;++e){const r=t.i[e],s=t.j[e],n=t.distance[e];this.sparseMatrix.has(r)||this.sparseMatrix.set(r,new Map),this.sparseMatrix.get(r).set(s,n)}console.timeEnd("sparse matrix to map"),t.distance=null,t.i=null,t.j=null,t=null,await new Promise((t=>{setTimeout((()=>{t()}),500)}))}const e=await this.reducer.fitAsync(this.vectors,(t=>{this.progressFunc&&this.progressFunc(t,this.reducer.getNEpochs(),this.reducer.getEmbedding())}));return{embedding:(r=e,new Array(r.length).fill(0).map(((t,e)=>n.from(r[e])))),...this.distanceMatrix?{distance:this.distanceMatrix}:{}};var r}},"t-SNE":class extends le{constructor(t){super(t),this.reducer=new s.Z(t),this.iterations=t?.iterations??100,this.distanceFname=t.distanceFname,this.distanceFn=t.distanceFn}async transform(t){const e=t?await(async()=>{const t=new f(!0,!1);try{const e=await t.calc(this.data,this.distanceFname);return t.terminate(),e}catch(e){throw t.terminate(),e}})():(()=>{const t=he.calc(this.data,((t,e)=>this.distanceFn(t,e)));return t.normalize(),t.data})(),r=function(t,e){const r=c(e);function s(t,e){const s=Number(t),n=Number(e);return r(s,n)}const n={get:(t,r,n)=>"length"===r?e:new Proxy(t,function(t){return{get:(e,r,n)=>t===r?0:e[Number(t)>Number(r)?s(r,t):s(t,r)]}}(r))};return new Proxy(t,n)}(e,this.data.length);this.reducer.initDataDist(r);for(let t=0;t<this.iterations;++t)this.reducer.step();return{distance:e,embedding:this.reducer.getSolution()}}},SPE:class extends le{constructor(t){super(t),this.reducer=new m(t)}async transform(){const t=await this.reducer.embed(this.data);return{distance:this.reducer.distance,embedding:t}}},pSPE:class extends le{constructor(t){super(t),this.reducer=new g(t)}async transform(){const t=await this.reducer.embed(this.data);return{distance:this.reducer.distance,embedding:t}}},OriginalSPE:class extends le{constructor(t){super(t),this.reducer=new p(t)}async transform(){const t=await this.reducer.embed(this.data);return{distance:this.reducer.distance,embedding:t}}}};class ce{constructor(t,e,r,s){const n=new P(r).getMeasure(s?.distanceFnArgs);let o={};if(D(r))for(let e=0;e<t.length;++e)t[e]=new v.Z(t[e]._data,t[e]._length);o="UMAP"==e?{data:t,distanceFn:n,distanceFname:r,nEpochs:s?.cycles,...s}:"t-SNE"==e?{data:t,distanceFn:n,distanceFname:r,iterations:s?.cycles??void 0,...s}:{data:t,distance:n,distanceFunctionName:r,...s},this.reducer=new ue[e](o)}async transform(t=!1,e){if(void 0===this.reducer)throw new Error("Reducer was not defined.");let{embedding:r,distance:s}=await this.reducer.transform(e);var o;return t&&(o=r,r=new Array(o[0].length).fill(0).map(((t,e)=>new n(o.length).fill(0).map(((t,r)=>o[r][e]))))),{distance:s,embedding:r}}static availableMetricsByType(t){return Object.keys(T[t])}static get availableMethods(){return Object.keys(ue)}static get availableMetrics(){let t=[];return Object.values(T).forEach((e=>{const r=Object.values(e);t=[...t,...r]})),t}}async function fe(t,e,r){t%5==0&&self.postMessage({epochNum:t,epochsLength:e,embedding:r})}self.onmessage=async({data:{columnData:t,method:e,measure:r,options:s,parallelDistanceWorkers:n}})=>{let o;try{o=await async function(t,e,r,s,n){const o=new ce(t,e,r,{...s,progressFunc:fe});return await o.transform(!0,n)}(t,e,r,s,n)}catch(t){o={error:t}}self.postMessage({error:o.error,distance:o.distance,embedding:o.embedding})}},7659:(t,e,r)=>{e.Z=void 0;var s=r(6215);Object.defineProperty(e,"Z",{enumerable:!0,get:function(){return s.TSNE}})},6215:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.TSNE=void 0,e.TSNE=class{constructor(t){this.returnV=!1,this.vValue=0,this.iter=0,t=t||{},this.perplexity=this.getopt(t,"perplexity",30),this.dim=this.getopt(t,"dim",2),this.epsilon=this.getopt(t,"epsilon",10)}assert(t,e){if(!t)throw e||"Assertion failed"}getopt(t,e,r){return t.hasOwnProperty(e)?t[e]:r}gaussRandom(){if(this.returnV)return this.returnV=!1,this.vValue;const t=2*Math.random()-1,e=2*Math.random()-1,r=t*t+e*e;if(0===r||r>1)return this.gaussRandom();const s=Math.sqrt(-2*Math.log(r)/r);return this.vValue=e*s,this.returnV=!0,t*s}randn(t,e){return t+this.gaussRandom()*e}zeros(t){if(void 0===t||isNaN(t))return[];if("undefined"==typeof ArrayBuffer){const e=new Array(t);for(let r=0;r<t;r++)e[r]=0;return e}return new Float64Array(t)}randn2d(t,e,r){const s=void 0!==r,n=[];for(let o=0;o<t;o++){const t=[];for(let n=0;n<e;n++)s?t.push(r):t.push(this.randn(0,1e-4));n.push(t)}return n}L2(t,e){const r=t.length;let s=0;for(let n=0;n<r;n++){const r=t[n],o=e[n];s+=(r-o)*(r-o)}return s}xtod(t){const e=t.length,r=this.zeros(e*e);for(let s=0;s<e;s++)for(let n=s+1;n<e;n++){const o=this.L2(t[s],t[n]);r[s*e+n]=o,r[n*e+s]=o}return r}d2p(t,e,r){const s=Math.sqrt(t.length),n=Math.floor(s);this.assert(n===s,"D should have square number of elements.");const o=Math.log(e),i=this.zeros(n*n),h=this.zeros(n);for(let e=0;e<n;e++){let s=-1/0,a=1/0,l=1,u=!1;const c=50;let f=0;for(;!u;){let i=0;for(let r=0;r<n;r++){let s=Math.exp(-t[e*n+r]*l);e===r&&(s=0),h[r]=s,i+=s}let m=0;for(let t=0;t<n;t++){let e;e=0===i?0:h[t]/i,h[t]=e,e>1e-7&&(m-=e*Math.log(e))}m>o?(s=l,a===1/0?l*=2:l=(l+a)/2):(a=l,s===-1/0?l/=2:l=(l+s)/2),f++,Math.abs(m-o)<r&&(u=!0),f>=c&&(u=!0)}for(let t=0;t<n;t++)i[e*n+t]=h[t]}const a=this.zeros(n*n),l=2*n;for(let t=0;t<n;t++)for(let e=0;e<n;e++)a[t*n+e]=Math.max((i[t*n+e]+i[e*n+t])/l,1e-100);return a}sign(t){return t>0?1:t<0?-1:0}initDataRaw(t){const e=t.length,r=t[0].length;this.assert(e>0," X is empty? You must have some data!"),this.assert(r>0," X[0] is empty? Where is the data?");const s=this.xtod(t);this.P=this.d2p(s,this.perplexity,1e-4),this.N=e,this.initSolution()}initDataDist(t){const e=t.length;this.assert(e>0," X is empty? You must have some data!");const r=this.zeros(e*e);for(let s=0;s<e;s++)for(let n=s+1;n<e;n++){const o=t[s][n];r[s*e+n]=o,r[n*e+s]=o}this.P=this.d2p(r,this.perplexity,1e-4),this.N=e,this.initSolution()}initSolution(){this.Y=this.randn2d(this.N,this.dim),this.gains=this.randn2d(this.N,this.dim,1),this.ystep=this.randn2d(this.N,this.dim,0),this.iter=0}getSolution(){return this.Y}step(){this.iter+=1;const t=this.N,e=this.costGrad(this.Y),r=e.cost,s=e.grad,n=this.zeros(this.dim);for(let e=0;e<t;e++)for(let t=0;t<this.dim;t++){const r=s[e][t],o=this.ystep[e][t],i=this.gains[e][t];let h=this.sign(r)===this.sign(o)?.8*i:i+.2;h<.01&&(h=.01),this.gains[e][t]=h;const a=(this.iter<250?.5:.8)*o-this.epsilon*h*s[e][t];this.ystep[e][t]=a,this.Y[e][t]+=a,n[t]+=this.Y[e][t]}for(let e=0;e<t;e++)for(let r=0;r<this.dim;r++)this.Y[e][r]-=n[r]/t;return r}debugGrad(){const t=this.N,e=this.costGrad(this.Y),r=(e.cost,e.grad),s=1e-5;for(let e=0;e<t;e++)for(let t=0;t<this.dim;t++){const n=this.Y[e][t];this.Y[e][t]=n+s;const o=this.costGrad(this.Y);this.Y[e][t]=n-s;const i=this.costGrad(this.Y),h=r[e][t],a=(o.cost-i.cost)/(2*s);console.log(e+","+t+": gradcheck analytic: "+h+" vs. numerical: "+a),this.Y[e][t]=n}}costGrad(t){const e=this.N,r=this.dim,s=this.P,n=this.iter<100?4:1,o=this.zeros(e*e);let i=0;for(let s=0;s<e;s++)for(let n=s+1;n<e;n++){let h=0;for(let e=0;e<r;e++){const r=t[s][e]-t[n][e];h+=r*r}const a=1/(1+h);o[s*e+n]=a,o[n*e+s]=a,i+=2*a}const h=e*e,a=this.zeros(h);for(let t=0;t<h;t++)a[t]=Math.max(o[t]/i,1e-100);let l=0;const u=[];for(let i=0;i<e;i++){const h=new Array(r);for(let t=0;t<r;t++)h[t]=0;for(let u=0;u<e;u++){l+=-s[i*e+u]*Math.log(a[i*e+u]);const c=4*(n*s[i*e+u]-a[i*e+u])*o[i*e+u];for(let e=0;e<r;e++)h[e]+=c*(t[i][e]-t[u][e])}u.push(h)}return{cost:l,grad:u}}}}},s={};function n(t){var e=s[t];if(void 0!==e)return e.exports;var o=s[t]={exports:{}};return r[t](o,o.exports,n),o.exports}n.m=r,n.x=()=>{var t=n.O(void 0,[932],(()=>n(9931)));return n.O(t)},t=[],n.O=(e,r,s,o)=>{if(!r){var i=1/0;for(u=0;u<t.length;u++){for(var[r,s,o]=t[u],h=!0,a=0;a<r.length;a++)(!1&o||i>=o)&&Object.keys(n.O).every((t=>n.O[t](r[a])))?r.splice(a--,1):(h=!1,o<i&&(i=o));if(h){t.splice(u--,1);var l=s();void 0!==l&&(e=l)}}return e}o=o||0;for(var u=t.length;u>0&&t[u-1][2]>o;u--)t[u]=t[u-1];t[u]=[r,s,o]},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.f={},n.e=t=>Promise.all(Object.keys(n.f).reduce(((e,r)=>(n.f[r](t,e),e)),[])),n.u=t=>t+".js",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var s=r.length-1;s>-1&&!t;)t=r[s--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t})(),(()=>{n.b=self.location+"";var t={931:1};n.f.i=(e,r)=>{t[e]||importScripts(n.p+n.u(e))};var e=self.webpackChunkpeptides=self.webpackChunkpeptides||[],r=e.push.bind(e);e.push=e=>{var[s,o,i]=e;for(var h in o)n.o(o,h)&&(n.m[h]=o[h]);for(i&&i(n);s.length;)t[s.pop()]=1;r(e)}})(),e=n.x,n.x=()=>n.e(932).then(e);var o=n.x();peptides=o})();
|
|
3
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QW9CdGpDLEVBQUUsS0FBS3VsQyxLQUFLL3FDLEdxRER4QyxJQUFJbXBDLEVBQXNCTCxFQUFvQnZnQyIsInNvdXJjZXMiOlsid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9jaHVuayBsb2FkZWQiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL3N0YXJ0dXAgY2h1bmsgZGVwZW5kZW5jaWVzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3JhbmRvbS5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvcHJveHkuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWF0cml4L2Rpc3RhbmNlLW1hdHJpeC1zZXJ2aWNlLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3NwZS5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy90eXBlZC1tZXRyaWNzL2NvbnN0cy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tZXRyaWNzLW1ldGhvZHMuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdHlwZWQtbWV0cmljcy90eXBlZC1tZXRyaWNzLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3VtYXAvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdW1hcC9oZWFwLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3VtYXAvbWF0cml4LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3VtYXAvdHJlZS5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9pcy1hbnktYXJyYXkvc3JjL2luZGV4LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLWxldmVuYmVyZy1tYXJxdWFyZHQvc3JjL2Vycm9yQ2FsY3VsYXRpb24uanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvbWwtbWF0cml4L25vZGVfbW9kdWxlcy9pcy1hbnktYXJyYXkvbGliLWVzbS9pbmRleC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9tbC1hcnJheS1yZXNjYWxlL25vZGVfbW9kdWxlcy9pcy1hbnktYXJyYXkvbGliLWVzbS9pbmRleC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9tbC1hcnJheS1tYXgvbm9kZV9tb2R1bGVzL2lzLWFueS1hcnJheS9saWItZXNtL2luZGV4LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLWFycmF5LW1pbi9ub2RlX21vZHVsZXMvaXMtYW55LWFycmF5L2xpYi1lc20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvbWwtYXJyYXktcmVzY2FsZS9saWItZXM2L2luZGV4LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLWFycmF5LW1pbi9saWItZXM2L2luZGV4LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLWFycmF5LW1heC9saWItZXM2L2luZGV4LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLW1hdHJpeC9zcmMvaW5zcGVjdC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9tbC1tYXRyaXgvc3JjL3V0aWwuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvbWwtbWF0cml4L3NyYy9tYXRyaXguanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvbWwtbWF0cml4L3NyYy9zdGF0LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLW1hdHJpeC9zcmMvbWF0aE9wZXJhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvbWwtbWF0cml4L3NyYy93cmFwL1dyYXBwZXJNYXRyaXgyRC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9tbC1tYXRyaXgvc3JjL2RjL2x1LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLW1hdHJpeC9zcmMvZGMvdXRpbC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9tbC1tYXRyaXgvc3JjL2RjL3FyLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLW1hdHJpeC9zcmMvZGMvc3ZkLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLWxldmVuYmVyZy1tYXJxdWFyZHQvc3JjL3N0ZXAuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvbWwtbWF0cml4L3NyYy9kZWNvbXBvc2l0aW9ucy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy91bWFwL3VtYXAuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdW1hcC9ubl9kZXNjZW50LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL21sLWxldmVuYmVyZy1tYXJxdWFyZHQvc3JjL2luZGV4LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3JlZHVjZS1kaW1lbnNpb25hbGl0eS5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvZGlzdGFuY2UtbWF0cml4LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdW1hcC9rbm5HcmFwaC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy93b3JrZXJzL2RpbWVuc2lvbmFsaXR5LXJlZHVjZXIuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGtlY2tlbHQvdHNuZS9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGtlY2tlbHQvdHNuZS9saWIvdHNuZS5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9pbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkZWZlcnJlZCA9IFtdO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5PID0gKHJlc3VsdCwgY2h1bmtJZHMsIGZuLCBwcmlvcml0eSkgPT4ge1xuXHRpZihjaHVua0lkcykge1xuXHRcdHByaW9yaXR5ID0gcHJpb3JpdHkgfHwgMDtcblx0XHRmb3IodmFyIGkgPSBkZWZlcnJlZC5sZW5ndGg7IGkgPiAwICYmIGRlZmVycmVkW2kgLSAxXVsyXSA+IHByaW9yaXR5OyBpLS0pIGRlZmVycmVkW2ldID0gZGVmZXJyZWRbaSAtIDFdO1xuXHRcdGRlZmVycmVkW2ldID0gW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldO1xuXHRcdHJldHVybjtcblx0fVxuXHR2YXIgbm90RnVsZmlsbGVkID0gSW5maW5pdHk7XG5cdGZvciAodmFyIGkgPSAwOyBpIDwgZGVmZXJyZWQubGVuZ3RoOyBpKyspIHtcblx0XHR2YXIgW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldID0gZGVmZXJyZWRbaV07XG5cdFx0dmFyIGZ1bGZpbGxlZCA9IHRydWU7XG5cdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBjaHVua0lkcy5sZW5ndGg7IGorKykge1xuXHRcdFx0aWYgKChwcmlvcml0eSAmIDEgPT09IDAgfHwgbm90RnVsZmlsbGVkID49IHByaW9yaXR5KSAmJiBPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLk8pLmV2ZXJ5KChrZXkpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fLk9ba2V5XShjaHVua0lkc1tqXSkpKSkge1xuXHRcdFx0XHRjaHVua0lkcy5zcGxpY2Uoai0tLCAxKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZ1bGZpbGxlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZihwcmlvcml0eSA8IG5vdEZ1bGZpbGxlZCkgbm90RnVsZmlsbGVkID0gcHJpb3JpdHk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKGZ1bGZpbGxlZCkge1xuXHRcdFx0ZGVmZXJyZWQuc3BsaWNlKGktLSwgMSlcblx0XHRcdHZhciByID0gZm4oKTtcblx0XHRcdGlmIChyICE9PSB1bmRlZmluZWQpIHJlc3VsdCA9IHI7XG5cdFx0fVxuXHR9XG5cdHJldHVybiByZXN1bHQ7XG59OyIsInZhciBuZXh0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy54O1xuX193ZWJwYWNrX3JlcXVpcmVfXy54ID0gKCkgPT4ge1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5lKDkzMikudGhlbihuZXh0KTtcbn07IiwiLyoqXG4gKiBEZW5vdGVzIGEgdmVjdG9yIG9mIGZsb2F0aW5nIHBvaXQgdmFsdWVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBWZWN0b3JcbiAqIEBleHRlbmRzIHtGbG9hdDMyQXJyYXl9XG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3IgZXh0ZW5kcyBGbG9hdDMyQXJyYXkge1xufVxuLyoqXG4gKiBEZW5vdGVzIGEgdHdvLWRpbWVuc2lvbmFsIG1hdHJpeC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgTWF0cml4XG4gKiBAZXh0ZW5kcyB7QXJyYXk8VmVjdG9yPn1cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdHJpeCBleHRlbmRzIEFycmF5IHtcbn1cbi8qKlxuICogRGVub3RlcyBjYXJ0ZXNpYW4gY29vcmRpbmF0ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIENvb3JkaW5hdGVzXG4gKiBAZXh0ZW5kcyB7TWF0cml4fVxuICovXG5leHBvcnQgY2xhc3MgQ29vcmRpbmF0ZXMgZXh0ZW5kcyBNYXRyaXgge1xufVxuLyoqXG4gKiBEZW5vdGVzIGFuIGFycmF5IG9mIGFyYml0cmFyeS10eXBlZCB2ZWN0b3JzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBWZWN0b3JzXG4gKiBAZXh0ZW5kcyB7QXJyYXk8YW55Pn1cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvcnMgZXh0ZW5kcyBBcnJheSB7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMGVYQmxMV1JsWTJ4aGNtRjBhVzl1Y3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkZRVHM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUVUZCVHl4VFFVRlJMRmxCUVZrN1EwRkJSenRCUVVVelF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1RVRkJUeXhUUVVGUkxFdEJRV0U3UTBGQlJ6dEJRVVUxUXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVjBGQldTeFRRVUZSTEUxQlFVMDdRMEZCUnp0QlFVVXhRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUMEZCVVN4VFFVRlJMRXRCUVZVN1EwRkJSeUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFpsWTNSdmNpQnZaaUJtYkc5aGRHbHVaeUJ3YjJsMElIWmhiSFZsY3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFZMnhoYzNNZ1ZtVmpkRzl5WEc0Z0tpQkFaWGgwWlc1a2N5QjdSbXh2WVhRek1rRnljbUY1ZlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZtVmpkRzl5SUdWNGRHVnVaSE1nUm14dllYUXpNa0Z5Y21GNUlIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUhSM2J5MWthVzFsYm5OcGIyNWhiQ0J0WVhSeWFYZ3VYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRTFoZEhKcGVGeHVJQ29nUUdWNGRHVnVaSE1nZTBGeWNtRjVQRlpsWTNSdmNqNTlYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJOWVhSeWFYZ2daWGgwWlc1a2N5QkJjbkpoZVR4V1pXTjBiM0krSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmpZWEowWlhOcFlXNGdZMjl2Y21ScGJtRjBaWE11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FHTnNZWE56SUVOdmIzSmthVzVoZEdWelhHNGdLaUJBWlhoMFpXNWtjeUI3VFdGMGNtbDRmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nUTI5dmNtUnBibUYwWlhNZ1pYaDBaVzVrY3lCTllYUnlhWGdnZTMxY2JseHVMeW9xWEc0Z0tpQkVaVzV2ZEdWeklHRnVJR0Z5Y21GNUlHOW1JR0Z5WW1sMGNtRnllUzEwZVhCbFpDQjJaV04wYjNKekxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJqYkdGemN5QldaV04wYjNKelhHNGdLaUJBWlhoMFpXNWtjeUI3UVhKeVlYazhZVzU1UG4xY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWmxZM1J2Y25NZ1pYaDBaVzVrY3lCQmNuSmhlVHhoYm5rK0lIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUdScFkzUnBiMjVoY25rZ1kyOXVkR0ZwYm1sdVp5Qm1kVzVqZEdsdmJpQnZjSFJwYjI1ekxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUIwZVhCbElFOXdkR2x2Ym5OY2JpQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1QzQjBhVzl1Y3lBOUlIdGJibUZ0WlRvZ2MzUnlhVzVuWFRvZ1lXNTVmVHRjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdOMWMzUnZiU0JrYVhOMFlXNWpaU0J0WlhSeWFXTWdZbVYwZDJWbGJpQjBhR1VnZEhkdklHZHBkbVZ1SUhabFkzUnZjbk11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIUjVjR1VnUkdsemRHRnVZMlZOWlhSeWFXTmNiaUFxSUVCd1lYSmhiU0I3WVc1NWZTQjJNU0JVYUdVZ1ptbHljM1FnZG1WamRHOXlMbHh1SUNvZ1FIQmhjbUZ0SUh0aGJubDlJSFl5SUZSb1pTQnpaV052Ym1RZ2RtVmpkRzl5TGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZTQkVhWE4wWVc1alpTQmlaWFIzWldWdUlIUm9aWE5sSUhSM2J5QjJaV04wYjNKekxseHVJQ292WEc1bGVIQnZjblFnZEhsd1pTQkVhWE4wWVc1alpVMWxkSEpwWXlBOUlDaDJNVG9nWVc1NUxDQjJNam9nWVc1NUtTQTlQaUFvYm5WdFltVnlLVHRjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdFZ2MybHRjR3hsSUhOMGNtbHVaeUIwYnlCemRISnBibWNnWkdsamRHbHZibUZ5ZVM1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFkSGx3WlNCVGRISnBibWRFYVdOMGFXOXVZWEo1WEc0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCN1cydGxlVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5mVHRjYmx4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JEYjJ4MWJXNUpibkIxZEU5d2RHbHZibk1nUFNCN1hHNGdJQ0FnWm1sc2RHVnlQem9nS0dOdmJEb2dSRWN1UTI5c2RXMXVLU0E5UGlCaWIyOXNaV0Z1SUh3Z2JuVnNiRHRjYm4wN1hHNGlYWDA9IiwiLyoqXG4gKiBHZW5lcmF0ZXMgc2luZ2xlIHJhbmRvbSBmbG9hdCBmcm9tIDAgdG8gcmFuZ2UuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHJhbmdlIE1heCBnZW5lcmF0aW5nIHZhbHVlLlxuICogQHJldHVybiB7bnVtYmVyfSBBIHJhbmRvbSBmbG9hdCBnZW5lcmF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21GbG9hdChyYW5nZSkge1xuICAgIHJldHVybiBNYXRoLnJhbmRvbSgpICogcmFuZ2U7XG59XG4vKipcbiAqIEdlbmVyYXRlcyBzaW5nbGUgcmFuZG9tIGludGVnZXIgZnJvbSAwIHRvIHJhbmdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByYW5nZSBNYXggZ2VuZXJhdGluZyB2YWx1ZS5cbiAqIEByZXR1cm4ge251bWJlcn0gQSByYW5kb20gaW50ZWdlciBnZW5lcmF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21JbnQocmFuZ2UpIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb21GbG9hdChyYW5nZSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY21GdVpHOXRMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWNtRnVaRzl0TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzVlVGQlZTeFhRVUZYTEVOQlFVTXNTMEZCWVR0SlFVTjJReXhQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRMMElzUTBGQlF6dEJRVVZFT3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hUUVVGVExFTkJRVU1zUzBGQllUdEpRVU55UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRU1zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dSMlZ1WlhKaGRHVnpJSE5wYm1kc1pTQnlZVzVrYjIwZ1pteHZZWFFnWm5KdmJTQXdJSFJ2SUhKaGJtZGxMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J5WVc1blpTQk5ZWGdnWjJWdVpYSmhkR2x1WnlCMllXeDFaUzVjYmlBcUlFQnlaWFIxY200Z2UyNTFiV0psY24wZ1FTQnlZVzVrYjIwZ1pteHZZWFFnWjJWdVpYSmhkR1ZrTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbUZ1Wkc5dFJteHZZWFFvY21GdVoyVTZJRzUxYldKbGNpazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJOWVhSb0xuSmhibVJ2YlNncElDb2djbUZ1WjJVN1hHNTlYRzVjYmk4cUtseHVJQ29nUjJWdVpYSmhkR1Z6SUhOcGJtZHNaU0J5WVc1a2IyMGdhVzUwWldkbGNpQm1jbTl0SURBZ2RHOGdjbUZ1WjJVdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlISmhibWRsSUUxaGVDQm5aVzVsY21GMGFXNW5JSFpoYkhWbExseHVJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmU0JCSUhKaGJtUnZiU0JwYm5SbFoyVnlJR2RsYm1WeVlYUmxaQzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlISmhibVJ2YlVsdWRDaHlZVzVuWlRvZ2JuVnRZbVZ5S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1Wm14dmIzSW9jbUZ1Wkc5dFJteHZZWFFvY21GdVoyVXBLVHRjYm4xY2JpSmRmUT09IiwiaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi90eXBlLWRlY2xhcmF0aW9ucyc7XG5pbXBvcnQgeyByYW5kb21GbG9hdCwgcmFuZG9tSW50IH0gZnJvbSAnLi9yYW5kb20nO1xuLyoqXG4gKiBBc3NlcnRzIGEgY29uZGl0aW9uIGJ5IHRocm93aW5nIGFuIEVycm9yLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NvbmRpdGlvbj1mYWxzZV0gQ29uZGl0aW9uIHRvIGFzc2VydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZT0nQXNzZXJ0aW9uIGVycm9yLiddIE1lc3NhZ2UgdG8gb3V0cHV0LlxuICogQHRocm93cyB7RXJyb3J9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnQoY29uZGl0aW9uID0gZmFsc2UsIG1lc3NhZ2UgPSAnQXNzZXJ0aW9uIGVycm9yLicpIHtcbiAgICBpZiAoIWNvbmRpdGlvbilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xufVxuLyoqXG4gKiBDcmVhdGVzIG5ldyB0d28tZGltZW5zaW9uYWwgYXJyYXkgYW5kIGZpbGxzIGl0IHdpdGggdGhlIHZhbHVlIGdpdmVuLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBkaW1lbnNpb24xIFRoZSBmaXJzdCBkaW1lbnNpb24gb2YgdGhlIGNvb3JkaW5hdGVzIChudW1iZXIgb2Ygcm93cykuXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMiBUaGUgc2Vjb25kIGRpbWVuc2lvbiBvZiB0aGUgY29vcmRpbmF0ZXMgKG51bWJlciBvZiBjb2x1bW5zKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbD0wXSBBIHZhbHVlIHRvIGZpbGwgdGhlIGNvb3JkaW5hdGVzIHdpdGguXG4gKiBAcmV0dXJuIHtDb29yZGluYXRlc30gQSB0d28tZGltZW5zaW9uYWwgZmlsbGVkIHdpdGggdGhlIHZhbHVlIGdpdmVuLlxuICogQHRvZG8gTWlnaHQgYmUgc2xvdyBzaW5jZSB1c2VkIEFycmF5Lm1hcC4gUHJvYmFibHkgbmVlZHMgcGVyZm9ybWFuY2UgcmV2aXNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgZmlsbCA9IDApIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KGRpbWVuc2lvbjEpLmZpbGwoZmlsbCkubWFwKCgpID0+IChuZXcgVmVjdG9yKGRpbWVuc2lvbjIpLmZpbGwoZmlsbCkpKTtcbn1cbi8qKlxuICogVHJhbnNwb3NlIG1hdHJpeC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge01hdHJpeH0gbWF0cml4IFRoZSBtYXRyaXggdG8gYmUgdHJhbnNwb3NlZC5cbiAqIEByZXR1cm4ge01hdHJpeH0gVHJhbnNwb3NlZCBtYXRyaXguXG4gKiBAdG9kbyBNaWdodCBiZSBzbG93IHNpbmNlIHVzZWQgQXJyYXkubWFwLiBQcm9iYWJseSBuZWVkcyBwZXJmb3JtYW5jZSByZXZpc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zcG9zZU1hdHJpeChtYXRyaXgpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KG1hdHJpeFswXS5sZW5ndGgpLmZpbGwoMClcbiAgICAgICAgLm1hcCgoXywgaSkgPT4gKG5ldyBWZWN0b3IobWF0cml4Lmxlbmd0aCkuZmlsbCgwKS5tYXAoKF8sIGopID0+IChtYXRyaXhbal1baV0pKSkpO1xufVxuLyoqXG4gKiBBZGRzIHR3byB2ZWN0b3JzIHdpdGggdGhlIHNlY29uZCBvbmUgdG8gYmUgbXVsdGlwbGllZCBieSB0aGUgZ2l2ZW4gcmF0aW8uXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcSBUaGUgc2Vjb25kIHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge251bWJlcn0gW211bHRpcGxpZXI9MV0gQSBtdWx0aXBsaWVyIHRvIGJlIHVzZWQgYmVmb3JlIHRoZSBzZWNvbmQgdmVjdG9yIGlzIGFkZGVkLlxuICogQHJldHVybiB7VmVjdG9yfSBOZXcgdmVjdG9yIGNvbnRhaW5lZCB0aGUgcmVzdWx0IG9mIG9wZXJhdGlvbiBwK211bHRpcGxpZXIqcS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckFkZChwLCBxLCBtdWx0aXBsaWVyID0gMSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IHAubGVuZ3RoO1xuICAgIGFzc2VydChuSXRlbXMgPT0gcS5sZW5ndGgsICdWZWN0b3IgbGVuZ3RocyBkbyBub3QgbWF0Y2guJyk7XG4gICAgY29uc3QgdG90YWwgPSBuZXcgVmVjdG9yKG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwLmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbFtpXSA9IHBbaV0gKyBtdWx0aXBsaWVyICogcVtpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG4vKipcbiAqIFN1bXMgdGhlIHZlY3RvcidzIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7VmVjdG9yfSB2IFRoZSB2ZWN0b3IgdG8gYmUgc3VtbWVkLlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgdmVjdG9yJ3MgaXRlbXMgc3VtLlxuICovXG5mdW5jdGlvbiBpdGVtc1N1bSh2KSB7XG4gICAgbGV0IHRvdGFsID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsICs9IHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuLyoqXG4gKiBTdXFhcmVzIHRoZSB2ZWN0b3IncyBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gdiBUaGUgdmVjdG9yIHRvIHNxdWFyZS5cbiAqIEByZXR1cm4ge1ZlY3Rvcn0gQSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG9yaWdpbmFsJ3MgaXRlbXMgc3F1YXJlZC5cbiAqL1xuZnVuY3Rpb24gdmVjdG9yU3F1YXJlKHYpIHtcbiAgICBjb25zdCBuSXRlbXMgPSB2Lmxlbmd0aDtcbiAgICBjb25zdCB0b3RhbCA9IG5ldyBWZWN0b3Iobkl0ZW1zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsW2ldID0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3Rvckxlbmd0aCh2KSB7XG4gICAgbGV0IHNxclN1bSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKVxuICAgICAgICBzcXJTdW0gKz0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIE1hdGguc3FydChzcXJTdW0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckRvdFByb2R1Y3QodjEsIHYyKSB7XG4gICAgaWYgKHYxLmxlbmd0aCAhPSB2Mi5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRpbWVuc2lvbmFsaXR5IG9mIHRoZSB2ZWN0b3JzIG11c3QgbWF0Y2gnKTtcbiAgICBsZXQgcHJvZCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2MS5sZW5ndGg7IGkrKylcbiAgICAgICAgcHJvZCArPSB2MVtpXSAqIHYyW2ldO1xuICAgIHJldHVybiBwcm9kO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbWF0cml4IGZpbGxlZCB3aXRoIHJhbmRvbSBmbG9hdGluZyBwb2ludCB2YWx1ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjEgVGhlIGZpcnN0IGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4LlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjIgVGhlIHNlY29uZCBkaW1lbnNpb24gb2YgdGhlIG1hdHJpeC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc2NhbGU9MS5dIE1heCB2YWx1ZSBnaXZlbiBieSByYW5kb20gZ2VuZXJhdG9yLlxuICogQHJldHVybiB7TWF0cml4fSBBIG5ldyBtYXRyaXggZmlsbGVkIHdpdGggcmFuZG9tIGZsb2F0aW5nIHBvaW50ICB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxsUmFuZG9tTWF0cml4KGRpbWVuc2lvbjEsIGRpbWVuc2lvbjIsIHNjYWxlID0gMS4pIHtcbiAgICBjb25zdCBtYXRyaXggPSBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaW1lbnNpb24xOyArK2kpIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkaW1lbnNpb24yOyArK2opXG4gICAgICAgICAgICBtYXRyaXhbaV1bal0gPSByYW5kb21GbG9hdChzY2FsZSk7XG4gICAgfVxuICAgIHJldHVybiBtYXRyaXg7XG59XG4vKipcbiAqIENhbGN1bGF0ZXMgRXVjbGlkZWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlY3RvcnMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3Rvci5cbiAqIEBwYXJhbSB7VmVjdG9yfSBxIFRoZSBzZWNvbmQgdmVjdG9yLlxuICogQHJldHVybiB7bnVtYmVyfSBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gdmVjdG9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlKHAsIHEpIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBjb25zdCBsZW4gPSBwLmxlbmd0aDtcbiAgICBpZiAobGVuICE9PSBxLmxlbmd0aClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgZGltZW5zaW9uYWxpdHkgb2YgdGhlIHZlY3RvcnMgbXVzdCBtYXRjaCcpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICAgIHJlc3VsdCArPSBNYXRoLnBvdygocFtpXSAtIHFbaV0pLCAyKTtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHJlc3VsdCk7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBkaXN0YW5jZSBtYXRyaXggdXNpbmcgYSBjdXN0b20gZGlzdGFuY2UgZnVuY3Rpb24uXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3JzfSBkYXRhIElucHV0IHZlY3RvcnMgdG8gY2FsY3VsYXRlIGRpc3RhbmNlcy5cbiAqIEBwYXJhbSB7RGlzdGFuY2VNZXRyaWN9IGRpc3RhbmNlIEN1c3RvbSBkaXN0YW5jZSBmdW5jdGlvbi5cbiAqIEByZXR1cm4ge01hdHJpeH0gQ2FsY3VsYXRlZCBjdXN0b20gZGlzdGFuY2UgbWF0cml4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY0Rpc3RhbmNlTWF0cml4KGRhdGEsIGRpc3RhbmNlKSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gZGF0YS5sZW5ndGg7XG4gICAgY29uc3QgbWF0cml4ID0gaW5pdENvb3JkaW5hdGVzKG5JdGVtcywgbkl0ZW1zLCAwKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5JdGVtczsgKytpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IG5JdGVtczsgKytqKSB7XG4gICAgICAgICAgICBjb25zdCBkID0gKGRhdGFbaV0gPT0gbnVsbCkgfHwgKGRhdGFbal0gPT0gbnVsbCkgPyAwIDogZGlzdGFuY2UoZGF0YVtpXSwgZGF0YVtqXSk7XG4gICAgICAgICAgICBtYXRyaXhbaV1bal0gPSBtYXRyaXhbal1baV0gPSBkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXRyaXg7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBkaXN0YW5jZSBtYXRyaXggdXNpbmcgYSBjdXN0b20gZGlzdGFuY2UgZnVuY3Rpb24uXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3JzfSBkYXRhIElucHV0IHZlY3RvcnMgdG8gY2FsY3VsYXRlIGRpc3RhbmNlcy5cbiAqIEBwYXJhbSB7RGlzdGFuY2VNZXRyaWN9IGRpc3RhbmNlIEN1c3RvbSBkaXN0YW5jZSBmdW5jdGlvbi5cbiAqIEByZXR1cm4ge01hdHJpeH0gQ2FsY3VsYXRlZCBjdXN0b20gZGlzdGFuY2UgbWF0cml4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY05vcm1hbGl6ZWREaXN0YW5jZU1hdHJpeChkYXRhLCBkaXN0YW5jZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhuSXRlbXMsIG5JdGVtcywgMCk7XG4gICAgbGV0IG1heCA9IE51bWJlci5NSU5fVkFMVUU7XG4gICAgbGV0IG1pbiA9IE51bWJlci5NQVhfVkFMVUU7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gaTsgaiA8IG5JdGVtczsgKytqKSB7XG4gICAgICAgICAgICBjb25zdCBkID0gKGRhdGFbaV0gPT0gbnVsbCkgfHwgKGRhdGFbal0gPT0gbnVsbCB8fCBpID09PSBqKSA/IDAgOiBkaXN0YW5jZShkYXRhW2ldLCBkYXRhW2pdKTtcbiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IG1hdHJpeFtqXVtpXSA9IGQ7XG4gICAgICAgICAgICBpZiAoZCA+IG1heClcbiAgICAgICAgICAgICAgICBtYXggPSBkO1xuICAgICAgICAgICAgaWYgKGQgPCBtaW4pXG4gICAgICAgICAgICAgICAgbWluID0gZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5JdGVtczsgKytpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IG5JdGVtczsgKytqKVxuICAgICAgICAgICAgbWF0cml4W2ldW2pdID0gbWF0cml4W2pdW2ldID0gKG1hdHJpeFtpXVtqXSAtIG1pbikgLyAobWF4IC0gbWluKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbn1cbi8qKiBHZW5lcmF0ZXMgYXJyYXkgZnJvbSBhIHJhbmdlIFtiZWdpbjsgZW5kXSBvciBbYmVnaW47IGVuZCkgaWYgZW5kRXhjbHVzaXZlLiAqKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5SYW5nZShiZWdpbiwgZW5kLCBlbmRFeGNsdXNpdmUgPSBmYWxzZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGVuZCAtIGJlZ2luICsgKGVuZEV4Y2x1c2l2ZSA/IDAgOiAxKTtcbiAgICBjb25zdCBzZXJpZXMgPSBuZXcgSW50MzJBcnJheShuSXRlbXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpXG4gICAgICAgIHNlcmllc1tpXSA9IGJlZ2luICsgaTtcbiAgICByZXR1cm4gc2VyaWVzO1xufVxuLyoqXG4gKiBSZXR1cm5zIG9yZGVyIG9mIHZhbHVlcyBhcyBpZiB0aGV5IGFyZSBzb3J0ZWQuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHthbnlbXX0gdmFsdWVzIElucHV0IGFycmF5LlxuICogQHBhcmFtIHtib29sZWFufSBbcmV2ZXJzZT1mYWxzZV0gV2hldGhlciB0byByZXR1cm4gcmV2ZXJzZWQgb3JkZXIuXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gVGhlIG9yZGVyIGNvbXB1dGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXJnU29ydCh2YWx1ZXMsIHJldmVyc2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHNvcnRmbiA9IHJldmVyc2UgPyAoYSwgYikgPT4gKGJbMF0gLSBhWzBdKSA6IChhLCBiKSA9PiAoYVswXSAtIGJbMF0pO1xuICAgIGNvbnN0IGRlY29yID0gKHYsIGkpID0+IFt2LCBpXTsgLy8gc2V0IGluZGV4IHRvIHZhbHVlXG4gICAgY29uc3QgdW5kZWNvciA9IChhKSA9PiBhWzFdOyAvLyBsZWF2ZSBvbmx5IGluZGV4XG4gICAgY29uc3QgX2FyZ3NvcnQgPSAoYXJyKSA9PiBhcnIubWFwKGRlY29yKS5zb3J0KHNvcnRmbikubWFwKHVuZGVjb3IpO1xuICAgIHJldHVybiBfYXJnc29ydCh2YWx1ZXMpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBpbmRleGVzIG9mIHRoZSBtb3N0IGRpdmVyc2Ugb2JqZWN0cyBhY2NvcmRpbmcgdG8gdGhlIGRpc3QgZnVuY3Rpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGggdG90YWwgbnVtYmVyIG9mIG9iamVjdHNcbiAqIEBwYXJhbSB7bnVtYmVyfSBuIG51bWJlciBvZiBkaXZlcnNlIGVsZW1lbnRzIHRvIGZpbmRcbiAqIEBwYXJhbSB7KGkxOiBudW1iZXIsIGkyOiBudW1iZXIpID0+IG51bWJlcn0gZGlzdCBhIGZ1bmN0aW9uIHdoaWNoIGNhbGN1bGF0ZXMgZGlzdGFuY2UgYmV0d2VlblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3byBvYmplY3RzIHVzaW5nIHRoZWlyIGluZGV4ZXNcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gVGhlIGluZGV4ZXMgb2YgdGhlIG1vc3QgZGl2ZXJzZSBvYmplY3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXZlcnNlU3Vic2V0KGxlbmd0aCwgbiwgZGlzdCkge1xuICAgIGZ1bmN0aW9uIG1heEJ5KHZhbHVlcywgb3JkZXJCeSkge1xuICAgICAgICBsZXQgbWF4VmFsdWUgPSBudWxsO1xuICAgICAgICBsZXQgbWF4T3JkZXJCeSA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRPcmRlckJ5ID0gb3JkZXJCeShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChtYXhPcmRlckJ5ID09IG51bGwgfHwgZWxlbWVudE9yZGVyQnkgPiBtYXhPcmRlckJ5KSB7XG4gICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIG1heE9yZGVyQnkgPSBlbGVtZW50T3JkZXJCeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4VmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHN1YnNldCA9IFtyYW5kb21JbnQobGVuZ3RoIC0gMSldO1xuICAgIGNvbnN0IGNvbXBsZW1lbnQgPSBuZXcgU2V0KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoIXN1YnNldC5pbmNsdWRlcyhpKSlcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuYWRkKGkpO1xuICAgIH1cbiAgICB3aGlsZSAoc3Vic2V0Lmxlbmd0aCA8IG4pIHtcbiAgICAgICAgY29uc3QgaWR4ID0gbWF4QnkoY29tcGxlbWVudC52YWx1ZXMoKSwgKGkpID0+IE1hdGgubWluLmFwcGx5KE1hdGgsIHN1YnNldC5tYXAoZnVuY3Rpb24gKHZhbCwgaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXN0KGksIHZhbCk7XG4gICAgICAgIH0pKSk7XG4gICAgICAgIGlmIChpZHgpIHtcbiAgICAgICAgICAgIHN1YnNldC5wdXNoKGlkeCk7XG4gICAgICAgICAgICBjb21wbGVtZW50LmRlbGV0ZShpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdWJzZXQ7XG59XG4vKipcbiAqIFJldHVybnMgbm9ybWFsaXplZCB2ZWN0b3IuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IGRhdGEgbnVtZXJpY2FsIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUoZGF0YSkge1xuICAgIGNvbnN0IGxlbiA9IGRhdGEubGVuZ3RoO1xuICAgIGxldCBzdW0gPSAwO1xuICAgIGxldCBzdW1PZlNxdWFyZXMgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgc3VtICs9IGRhdGFbaV07XG4gICAgICAgIHN1bU9mU3F1YXJlcyArPSBNYXRoLnBvdyhkYXRhW2ldLCAyKTtcbiAgICB9XG4gICAgY29uc3QgbWVhbiA9IHN1bSAvIGxlbjtcbiAgICBjb25zdCBzdGREZXZJbnZlcnNlID0gMS4wIC8gTWF0aC5zcXJ0KHN1bU9mU3F1YXJlcyAvIGxlbiAtIE1hdGgucG93KG1lYW4sIDIpKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgICBkYXRhW2ldID0gKGRhdGFbaV0gLSBtZWFuKSAqIHN0ZERldkludmVyc2U7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vKipcbiAqIEZpbmRzIHNldCBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGxpc3RzLlxuICogQHBhcmFtIHthbnlbXX0gYSBUaGUgZmlyc3QgbGlzdC5cbiAqIEBwYXJhbSB7YW55W119IGIgVGhlIHNlY29uZCBsaXN0LlxuICogQHJldHVybiB7YW55W119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXREaWZmZXJlbmNlKGEsIGIpIHtcbiAgICBjb25zdCBiU2V0ID0gbmV3IFNldChiKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGEuZmlsdGVyKCh4KSA9PiAhYlNldC5oYXMoeCkpKS52YWx1ZXMoKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMlpXTjBiM0l0YjNCbGNtRjBhVzl1Y3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRVk1zVFVGQlRTeEZRVUYxUXl4TlFVRk5MSEZDUVVGeFFpeERRVUZETzBGQlEzcEdMRTlCUVU4c1JVRkJReXhYUVVGWExFVkJRVVVzVTBGQlV5eEZRVUZETEUxQlFVMHNWVUZCVlN4RFFVRkRPMEZCUldoRU96czdPenM3TzBkQlQwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1RVRkJUU3hEUVVGRExGbEJRWEZDTEV0QlFVc3NSVUZCUlN4VlFVRnJRaXhyUWtGQmEwSTdTVUZEY2tZc1NVRkJTU3hEUVVGRExGTkJRVk03VVVGRFdpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRemRDTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4bFFVRmxMRU5CUVVNc1ZVRkJhMElzUlVGQlJTeFZRVUZyUWl4RlFVRkZMRTlCUVdVc1EwRkJRenRKUVVOMFJpeFBRVUZQTEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNwR0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHVkJRV1VzUTBGQlF5eE5RVUZqTzBsQlF6VkRMRTlCUVU4c1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEZGtNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRkRVlzUTBGQlF6dEJRVVZFT3pzN096czdPenRIUVZGSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEZOQlFWTXNRMEZCUXl4RFFVRlRMRVZCUVVVc1EwRkJVeXhGUVVGRkxHRkJRWEZDTEVOQlFVTTdTVUZEY0VVc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0SlFVVjRRaXhOUVVGTkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc09FSkJRVGhDTEVOQlFVTXNRMEZCUXp0SlFVVXpSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVWcVF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNN1VVRkRMMElzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSWFJETEU5QlFVOHNTMEZCU3l4RFFVRkRPMEZCUTJZc1EwRkJRenRCUVVWRU96czdPenRIUVV0SE8wRkJRMGdzVTBGQlV5eFJRVUZSTEVOQlFVTXNRMEZCVXp0SlFVTjZRaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZGWkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGREwwSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZvUWl4UFFVRlBMRXRCUVVzc1EwRkJRenRCUVVObUxFTkJRVU03UVVGRlJEczdPenM3UjBGTFJ6dEJRVU5JTEZOQlFWTXNXVUZCV1N4RFFVRkRMRU5CUVZNN1NVRkROMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVONFFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVVZxUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGREwwSXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmVrSXNUMEZCVHl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEZsQlFWa3NRMEZCUXl4RFFVRlRPMGxCUTNCRExFbEJRVWtzVFVGQlRTeEhRVUZYTEVOQlFVTXNRMEZCUXp0SlFVTjJRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZYTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVTdVVUZEZGtNc1RVRkJUU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGVFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlF6TkNMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVlU3U1VGRGNrUXNTVUZCU1N4RlFVRkZMRU5CUVVNc1RVRkJUU3hKUVVGSkxFVkJRVVVzUTBGQlF5eE5RVUZOTzFGQlEzaENMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zT0VOQlFUaERMRU5CUVVNc1EwRkJRenRKUVVOc1JTeEpRVUZKTEVsQlFVa3NSMEZCVnl4RFFVRkRMRU5CUVVNN1NVRkRja0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCVnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUTNoRExFbEJRVWtzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaENMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMlFzUTBGQlF6dEJRVVZFT3pzN096czdPenRIUVZGSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExGVkJRV3RDTEVWQlFVVXNWVUZCYTBJc1JVRkJSU3hSUVVGblFpeEZRVUZGTzBsQlEzcEdMRTFCUVUwc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF5eFZRVUZWTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1NVRkZka1FzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTnVReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF6dFpRVU5xUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wdEJRM0pETzBsQlEwUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1FVRkRhRUlzUTBGQlF6dEJRVVZFT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzTUVKQlFUQkNMRU5CUVVNc1EwRkJVeXhGUVVGRkxFTkJRVk03U1VGRE4wUXNTVUZCU1N4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMllzVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVWeVFpeEpRVUZKTEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1RVRkJUVHRSUVVOc1FpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRGhEUVVFNFF5eERRVUZETEVOQlFVTTdTVUZGYkVVc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGRE1VSXNUVUZCVFN4SlFVRkpMRk5CUVVFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVWtzUTBGQlF5eERRVUZCTEVOQlFVTTdTVUZGTDBJc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUXpOQ0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHdENRVUZyUWl4RFFVRkRMRWxCUVdFc1JVRkJSU3hSUVVGM1FqdEpRVU40UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlF6TkNMRTFCUVUwc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSV3hFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1dVRkRia01zVFVGQlRTeERRVUZETEVkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhSaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRUUVVOcVF6dExRVU5HTzBsQlEwUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1FVRkRhRUlzUTBGQlF6dEJRVVZFT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzTkVKQlFUUkNMRU5CUVVNc1NVRkJZU3hGUVVGRkxGRkJRWGRDTzBsQlEyeEdMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZETTBJc1RVRkJUU3hOUVVGTkxFZEJRVWNzWlVGQlpTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJFUXNTVUZCU1N4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU16UWl4SlFVRkpMRWRCUVVjc1IwRkJSeXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETzBsQlF6TkNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGREwwSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRaUVVNdlFpeE5RVUZOTEVOQlFVTXNSMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEYUVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUjBGQlJ6dG5Ra0ZCUlN4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRM0pDTEVsQlFVa3NRMEZCUXl4SFFVRkhMRWRCUVVjN1owSkJRVVVzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0VFFVTjBRanRMUVVOR08wbEJRMFFzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTXZRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTTdXVUZEYWtNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0TFFVTndSVHRKUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBGQlEyaENMRU5CUVVNN1FVRkZSQ3hyUmtGQmEwWTdRVUZEYkVZc1RVRkJUU3hWUVVGVkxGRkJRVkVzUTBGQlF5eExRVUZoTEVWQlFVVXNSMEZCVnl4RlFVRkZMRmxCUVZrc1IwRkJSeXhMUVVGTE8wbEJRM1pGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWRCUVVjc1IwRkJSeXhMUVVGTExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY0VRc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkZkRU1zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTTdVVUZETjBJc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkZlRUlzVDBGQlR5eE5RVUZOTEVOQlFVTTdRVUZEYUVJc1EwRkJRenRCUVVWRU96czdPenM3TzBkQlQwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1QwRkJUeXhEUVVGRExFMUJRV0VzUlVGQlJTeFBRVUZQTEVkQlFVY3NTMEZCU3p0SlFVTndSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJVU3hGUVVGRkxFTkJRVkVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlVTeEZRVUZGTEVOQlFWRXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGRrY3NUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGTkxFVkJRVVVzUTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEhGQ1FVRnhRanRKUVVOc1JTeE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVZFc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc2JVSkJRVzFDTzBsQlEzWkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFTkJRVU1zUjBGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETVVVc1QwRkJUeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdRVUZETVVJc1EwRkJRenRCUVVWRU96czdPenM3TzBkQlQwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlFVTXNUVUZCWXl4RlFVRkZMRU5CUVZNc1JVRkJSU3hKUVVGM1F6dEpRVU5zUnl4VFFVRlRMRXRCUVVzc1EwRkJReXhOUVVGblF5eEZRVUZGTEU5QlFUaENPMUZCUXpkRkxFbEJRVWtzVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTndRaXhKUVVGSkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZGZEVJc1MwRkJTeXhOUVVGTkxFOUJRVThzU1VGQlNTeE5RVUZOTEVWQlFVVTdXVUZETlVJc1RVRkJUU3hqUVVGakxFZEJRVWNzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUTNoRExFbEJRVWtzVlVGQlZTeEpRVUZKTEVsQlFVa3NTVUZCU1N4alFVRmpMRWRCUVVjc1ZVRkJWU3hGUVVGRk8yZENRVU55UkN4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRE8yZENRVU51UWl4VlFVRlZMRWRCUVVjc1kwRkJZeXhEUVVGRE8yRkJRemRDTzFOQlEwWTdVVUZEUkN4UFFVRlBMRkZCUVZFc1EwRkJRenRKUVVOc1FpeERRVUZETzBsQlJVUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRka01zVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVVM1FpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUXk5Q0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOeVFpeFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJRM0pDTzBsQlJVUXNUMEZCVHl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJUdFJRVU40UWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRMllzVlVGQlZTeERRVUZETEUxQlFVMHNSVUZCT0VJc1JVRkRMME1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVk1zUjBGQlJ5eEZRVUZGTEV0QlFVczdXVUZEZUVRc1QwRkJUeXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNSQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTlFMRWxCUVVrc1IwRkJSeXhGUVVGRk8xbEJRMUFzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOcVFpeFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRM2hDTzB0QlEwWTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1UwRkJVeXhEUVVGRExFbEJRVms3U1VGRGNFTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU40UWl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRFdpeEpRVUZKTEZsQlFWa3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkZja0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTTFRaXhIUVVGSExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJZc1dVRkJXU3hKUVVGSkxGTkJRVUVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkpMRU5CUVVNc1EwRkJRU3hEUVVGRE8wdEJRemxDTzBsQlJVUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF6dEpRVU4yUWl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1IwRkJSeXhIUVVGSExGTkJRVUVzU1VGQlNTeEZRVUZKTEVOQlFVTXNRMEZCUVN4RFFVRkRMRU5CUVVNN1NVRkZkRVVzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTTdVVUZETVVJc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEdGQlFXRXNRMEZCUXp0SlFVVTNReXhQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5rTEVOQlFVTTdRVUZGUkRzN096czdSMEZMUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hoUVVGaExFTkJRVU1zUTBGQlVTeEZRVUZGTEVOQlFWRTdTVUZET1VNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRlRUlzVDBGQlR5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTnlSU3hEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdE5ZWFJ5YVhnc0lGWmxZM1J2Y2l3Z1EyOXZjbVJwYm1GMFpYTXNJRlpsWTNSdmNuTXNJRVJwYzNSaGJtTmxUV1YwY21samZTQm1jbTl0SUNjdUwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdjbUZ1Wkc5dFJteHZZWFFzSUhKaGJtUnZiVWx1ZEgwZ1puSnZiU0FuTGk5eVlXNWtiMjBuTzF4dVhHNHZLaXBjYmlBcUlFRnpjMlZ5ZEhNZ1lTQmpiMjVrYVhScGIyNGdZbmtnZEdoeWIzZHBibWNnWVc0Z1JYSnliM0l1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYlkyOXVaR2wwYVc5dVBXWmhiSE5sWFNCRGIyNWthWFJwYjI0Z2RHOGdZWE56WlhKMExseHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR0WlhOellXZGxQU2RCYzNObGNuUnBiMjRnWlhKeWIzSXVKMTBnVFdWemMyRm5aU0IwYnlCdmRYUndkWFF1WEc0Z0tpQkFkR2h5YjNkeklIdEZjbkp2Y24xY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR0Z6YzJWeWRDaGpiMjVrYVhScGIyNDZJR0p2YjJ4bFlXNGdQU0JtWVd4elpTd2diV1Z6YzJGblpUb2djM1J5YVc1bklEMGdKMEZ6YzJWeWRHbHZiaUJsY25KdmNpNG5LU0I3WEc0Z0lHbG1JQ2doWTI5dVpHbDBhVzl1S1Z4dUlDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaHRaWE56WVdkbEtUdGNibjFjYmx4dUx5b3FYRzRnS2lCRGNtVmhkR1Z6SUc1bGR5QjBkMjh0WkdsdFpXNXphVzl1WVd3Z1lYSnlZWGtnWVc1a0lHWnBiR3h6SUdsMElIZHBkR2dnZEdobElIWmhiSFZsSUdkcGRtVnVMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmthVzFsYm5OcGIyNHhJRlJvWlNCbWFYSnpkQ0JrYVcxbGJuTnBiMjRnYjJZZ2RHaGxJR052YjNKa2FXNWhkR1Z6SUNodWRXMWlaWElnYjJZZ2NtOTNjeWt1WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1pHbHRaVzV6YVc5dU1pQlVhR1VnYzJWamIyNWtJR1JwYldWdWMybHZiaUJ2WmlCMGFHVWdZMjl2Y21ScGJtRjBaWE1nS0c1MWJXSmxjaUJ2WmlCamIyeDFiVzV6S1M1Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJabWxzYkQwd1hTQkJJSFpoYkhWbElIUnZJR1pwYkd3Z2RHaGxJR052YjNKa2FXNWhkR1Z6SUhkcGRHZ3VYRzRnS2lCQWNtVjBkWEp1SUh0RGIyOXlaR2x1WVhSbGMzMGdRU0IwZDI4dFpHbHRaVzV6YVc5dVlXd2dabWxzYkdWa0lIZHBkR2dnZEdobElIWmhiSFZsSUdkcGRtVnVMbHh1SUNvZ1FIUnZaRzhnVFdsbmFIUWdZbVVnYzJ4dmR5QnphVzVqWlNCMWMyVmtJRUZ5Y21GNUxtMWhjQzRnVUhKdlltRmliSGtnYm1WbFpITWdjR1Z5Wm05eWJXRnVZMlVnY21WMmFYTnBiMjR1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBibWwwUTI5dmNtUnBibUYwWlhNb1pHbHRaVzV6YVc5dU1Ub2diblZ0WW1WeUxDQmthVzFsYm5OcGIyNHlPaUJ1ZFcxaVpYSXNJR1pwYkd3NklHNTFiV0psY2lBOUlEQXBPaUJEYjI5eVpHbHVZWFJsY3lCN1hHNGdJSEpsZEhWeWJpQnVaWGNnUVhKeVlYa29aR2x0Wlc1emFXOXVNU2t1Wm1sc2JDaG1hV3hzS1M1dFlYQW9LQ2tnUFQ0Z0tHNWxkeUJXWldOMGIzSW9aR2x0Wlc1emFXOXVNaWt1Wm1sc2JDaG1hV3hzS1NrcE8xeHVmVnh1WEc0dktpcGNiaUFxSUZSeVlXNXpjRzl6WlNCdFlYUnlhWGd1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIQmhjbUZ0SUh0TllYUnlhWGg5SUcxaGRISnBlQ0JVYUdVZ2JXRjBjbWw0SUhSdklHSmxJSFJ5WVc1emNHOXpaV1F1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlGUnlZVzV6Y0c5elpXUWdiV0YwY21sNExseHVJQ29nUUhSdlpHOGdUV2xuYUhRZ1ltVWdjMnh2ZHlCemFXNWpaU0IxYzJWa0lFRnljbUY1TG0xaGNDNGdVSEp2WW1GaWJIa2dibVZsWkhNZ2NHVnlabTl5YldGdVkyVWdjbVYyYVhOcGIyNHVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMGNtRnVjM0J2YzJWTllYUnlhWGdvYldGMGNtbDRPaUJOWVhSeWFYZ3BPaUJOWVhSeWFYZ2dlMXh1SUNCeVpYUjFjbTRnYm1WM0lFRnljbUY1S0cxaGRISnBlRnN3WFM1c1pXNW5kR2dwTG1acGJHd29NQ2xjYmlBZ0lDQXViV0Z3S0NoZkxDQnBLU0E5UGlBb2JtVjNJRlpsWTNSdmNpaHRZWFJ5YVhndWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29YeXdnYWlrZ1BUNGdLRzFoZEhKcGVGdHFYVnRwWFNrcEtTazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FXUmtjeUIwZDI4Z2RtVmpkRzl5Y3lCM2FYUm9JSFJvWlNCelpXTnZibVFnYjI1bElIUnZJR0psSUcxMWJIUnBjR3hwWldRZ1lua2dkR2hsSUdkcGRtVnVJSEpoZEdsdkxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWZTQndJRlJvWlNCbWFYSnpkQ0IyWldOMGIzSWdkRzhnWVdSa0xseHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSjlJSEVnVkdobElITmxZMjl1WkNCMlpXTjBiM0lnZEc4Z1lXUmtMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0dGRXeDBhWEJzYVdWeVBURmRJRUVnYlhWc2RHbHdiR2xsY2lCMGJ5QmlaU0IxYzJWa0lHSmxabTl5WlNCMGFHVWdjMlZqYjI1a0lIWmxZM1J2Y2lCcGN5QmhaR1JsWkM1Y2JpQXFJRUJ5WlhSMWNtNGdlMVpsWTNSdmNuMGdUbVYzSUhabFkzUnZjaUJqYjI1MFlXbHVaV1FnZEdobElISmxjM1ZzZENCdlppQnZjR1Z5WVhScGIyNGdjQ3R0ZFd4MGFYQnNhV1Z5S25FdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIyWldOMGIzSkJaR1FvY0RvZ1ZtVmpkRzl5TENCeE9pQldaV04wYjNJc0lHMTFiSFJwY0d4cFpYSTZJRzUxYldKbGNpQTlJREVwT2lCV1pXTjBiM0lnZTF4dUlDQmpiMjV6ZENCdVNYUmxiWE1nUFNCd0xteGxibWQwYUR0Y2JseHVJQ0JoYzNObGNuUW9ia2wwWlcxeklEMDlJSEV1YkdWdVozUm9MQ0FuVm1WamRHOXlJR3hsYm1kMGFITWdaRzhnYm05MElHMWhkR05vTGljcE8xeHVYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdibVYzSUZabFkzUnZjaWh1U1hSbGJYTXBPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2djQzVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0IwYjNSaGJGdHBYU0E5SUhCYmFWMGdLeUJ0ZFd4MGFYQnNhV1Z5SUNvZ2NWdHBYVHRjYmx4dUlDQnlaWFIxY200Z2RHOTBZV3c3WEc1OVhHNWNiaThxS2x4dUlDb2dVM1Z0Y3lCMGFHVWdkbVZqZEc5eUozTWdhWFJsYlhNdVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUh0V1pXTjBiM0o5SUhZZ1ZHaGxJSFpsWTNSdmNpQjBieUJpWlNCemRXMXRaV1F1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOUlGUm9aU0IyWldOMGIzSW5jeUJwZEdWdGN5QnpkVzB1WEc0Z0tpOWNibVoxYm1OMGFXOXVJR2wwWlcxelUzVnRLSFk2SUZabFkzUnZjaWs2SUc1MWJXSmxjaUI3WEc0Z0lHeGxkQ0IwYjNSaGJDQTlJREE3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0IyTG14bGJtZDBhRHNnS3l0cEtWeHVJQ0FnSUhSdmRHRnNJQ3M5SUhaYmFWMDdYRzVjYmlBZ2NtVjBkWEp1SUhSdmRHRnNPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGTjFjV0Z5WlhNZ2RHaGxJSFpsWTNSdmNpZHpJR2wwWlcxekxseHVJQ3BjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5ZlNCMklGUm9aU0IyWldOMGIzSWdkRzhnYzNGMVlYSmxMbHh1SUNvZ1FISmxkSFZ5YmlCN1ZtVmpkRzl5ZlNCQklHNWxkeUIyWldOMGIzSWdZMjl1ZEdGcGJtbHVaeUIwYUdVZ2IzSnBaMmx1WVd3bmN5QnBkR1Z0Y3lCemNYVmhjbVZrTGx4dUlDb3ZYRzVtZFc1amRHbHZiaUIyWldOMGIzSlRjWFZoY21Vb2Rqb2dWbVZqZEc5eUtUb2dWbVZqZEc5eUlIdGNiaUFnWTI5dWMzUWdia2wwWlcxeklEMGdkaTVzWlc1bmRHZzdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdibVYzSUZabFkzUnZjaWh1U1hSbGJYTXBPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkaTVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0IwYjNSaGJGdHBYU0E5SUhaYmFWMGdLaUIyVzJsZE8xeHVYRzRnSUhKbGRIVnliaUIwYjNSaGJEdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhabFkzUnZja3hsYm1kMGFDaDJPaUJXWldOMGIzSXBPaUJ1ZFcxaVpYSWdlMXh1SUNCc1pYUWdjM0Z5VTNWdE9pQnVkVzFpWlhJZ1BTQXdPMXh1SUNCbWIzSWdLR3hsZENCcE9pQnVkVzFpWlhJZ1BTQXdPeUJwSUR3Z2RpNXNaVzVuZEdnN0lHa3JLeWxjYmlBZ0lDQnpjWEpUZFcwZ0t6MGdkbHRwWFNBcUlIWmJhVjA3WEc0Z0lISmxkSFZ5YmlCTllYUm9Mbk54Y25Rb2MzRnlVM1Z0S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFpsWTNSdmNrUnZkRkJ5YjJSMVkzUW9kakU2SUZabFkzUnZjaXdnZGpJNklGWmxZM1J2Y2lrNklHNTFiV0psY2lCN1hHNGdJR2xtSUNoMk1TNXNaVzVuZEdnZ0lUMGdkakl1YkdWdVozUm9LVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblZHaGxJR1JwYldWdWMybHZibUZzYVhSNUlHOW1JSFJvWlNCMlpXTjBiM0p6SUcxMWMzUWdiV0YwWTJnbktUdGNiaUFnYkdWMElIQnliMlE2SUc1MWJXSmxjaUE5SURBN1hHNGdJR1p2Y2lBb2JHVjBJR2s2SUc1MWJXSmxjaUE5SURBN0lHa2dQQ0IyTVM1c1pXNW5kR2c3SUdrckt5bGNiaUFnSUNCd2NtOWtJQ3M5SUhZeFcybGRJQ29nZGpKYmFWMDdYRzRnSUhKbGRIVnliaUJ3Y205a08xeHVmVnh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nWVNCdFlYUnlhWGdnWm1sc2JHVmtJSGRwZEdnZ2NtRnVaRzl0SUdac2IyRjBhVzVuSUhCdmFXNTBJSFpoYkhWbGN5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdaR2x0Wlc1emFXOXVNU0JVYUdVZ1ptbHljM1FnWkdsdFpXNXphVzl1SUc5bUlIUm9aU0J0WVhSeWFYZ3VYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWkdsdFpXNXphVzl1TWlCVWFHVWdjMlZqYjI1a0lHUnBiV1Z1YzJsdmJpQnZaaUIwYUdVZ2JXRjBjbWw0TGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHpZMkZzWlQweExsMGdUV0Y0SUhaaGJIVmxJR2RwZG1WdUlHSjVJSEpoYm1SdmJTQm5aVzVsY21GMGIzSXVYRzRnS2lCQWNtVjBkWEp1SUh0TllYUnlhWGg5SUVFZ2JtVjNJRzFoZEhKcGVDQm1hV3hzWldRZ2QybDBhQ0J5WVc1a2IyMGdabXh2WVhScGJtY2djRzlwYm5RZ0lIWmhiSFZsY3k1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1pwYkd4U1lXNWtiMjFOWVhSeWFYZ29aR2x0Wlc1emFXOXVNVG9nYm5WdFltVnlMQ0JrYVcxbGJuTnBiMjR5T2lCdWRXMWlaWElzSUhOallXeGxPaUJ1ZFcxaVpYSWdQU0F4TGlrNklFMWhkSEpwZUNCN1hHNGdJR052Ym5OMElHMWhkSEpwZUNBOUlHbHVhWFJEYjI5eVpHbHVZWFJsY3loa2FXMWxibk5wYjI0eExDQmthVzFsYm5OcGIyNHlLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JwYldWdWMybHZiakU3SUNzcmFTa2dlMXh1SUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2daR2x0Wlc1emFXOXVNanNnS3l0cUtWeHVJQ0FnSUNBZ2JXRjBjbWw0VzJsZFcycGRJRDBnY21GdVpHOXRSbXh2WVhRb2MyTmhiR1VwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ0WVhSeWFYZzdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1EyRnNZM1ZzWVhSbGN5QkZkV05zYVdSbFlXNGdaR2x6ZEdGdVkyVWdZbVYwZDJWbGJpQjBkMjhnZG1WamRHOXljeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnY0NCVWFHVWdabWx5YzNRZ2RtVmpkRzl5TGx4dUlDb2dRSEJoY21GdElIdFdaV04wYjNKOUlIRWdWR2hsSUhObFkyOXVaQ0IyWldOMGIzSXVYRzRnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5SUVWMVkyeHBaR1ZoYmlCa2FYTjBZVzVqWlNCaVpYUjNaV1Z1SUhSb1pTQm5hWFpsYmlCMlpXTjBiM0p6TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMkZzWTNWc1lYUmxSWFZqYkdsa1pXRnVSR2x6ZEdGdVkyVW9jRG9nVm1WamRHOXlMQ0J4T2lCV1pXTjBiM0lwT2lCdWRXMWlaWElnZTF4dUlDQnNaWFFnY21WemRXeDBJRDBnTUR0Y2JpQWdZMjl1YzNRZ2JHVnVJRDBnY0M1c1pXNW5kR2c3WEc1Y2JpQWdhV1lnS0d4bGJpQWhQVDBnY1M1c1pXNW5kR2dwWEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFVhR1VnWkdsdFpXNXphVzl1WVd4cGRIa2diMllnZEdobElIWmxZM1J2Y25NZ2JYVnpkQ0J0WVhSamFDY3BPMXh1SUNCY2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JzWlc0N0lDc3JhU2xjYmlBZ0lDQnlaWE4xYkhRZ0t6MGdLSEJiYVYwZ0xTQnhXMmxkS1NBcUtpQXlPMXh1SUNCY2JpQWdjbVYwZFhKdUlFMWhkR2d1YzNGeWRDaHlaWE4xYkhRcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nWVNCa2FYTjBZVzVqWlNCdFlYUnlhWGdnZFhOcGJtY2dZU0JqZFhOMGIyMGdaR2x6ZEdGdVkyVWdablZ1WTNScGIyNHVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSnpmU0JrWVhSaElFbHVjSFYwSUhabFkzUnZjbk1nZEc4Z1kyRnNZM1ZzWVhSbElHUnBjM1JoYm1ObGN5NWNiaUFxSUVCd1lYSmhiU0I3UkdsemRHRnVZMlZOWlhSeWFXTjlJR1JwYzNSaGJtTmxJRU4xYzNSdmJTQmthWE4wWVc1alpTQm1kVzVqZEdsdmJpNWNiaUFxSUVCeVpYUjFjbTRnZTAxaGRISnBlSDBnUTJGc1kzVnNZWFJsWkNCamRYTjBiMjBnWkdsemRHRnVZMlVnYldGMGNtbDRMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kyRnNZMFJwYzNSaGJtTmxUV0YwY21sNEtHUmhkR0U2SUZabFkzUnZjbk1zSUdScGMzUmhibU5sT2lCRWFYTjBZVzVqWlUxbGRISnBZeWs2SUUxaGRISnBlQ0I3WEc0Z0lHTnZibk4wSUc1SmRHVnRjeUE5SUdSaGRHRXViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQnRZWFJ5YVhnZ1BTQnBibWwwUTI5dmNtUnBibUYwWlhNb2JrbDBaVzF6TENCdVNYUmxiWE1zSURBcE8xeHVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JrbDBaVzF6T3lBcksya3BJSHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnFJRDBnYVNBcklERTdJR29nUENCdVNYUmxiWE03SUNzcmFpa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1pEb2diblZ0WW1WeUlEMGdLR1JoZEdGYmFWMGdQVDBnYm5Wc2JDa2dmSHdnS0dSaGRHRmJhbDBnUFQwZ2JuVnNiQ2tnUHlBd0lEb2daR2x6ZEdGdVkyVW9aR0YwWVZ0cFhTd2daR0YwWVZ0cVhTazdYRzRnSUNBZ0lDQnRZWFJ5YVhoYmFWMWJhbDBnUFNCdFlYUnlhWGhiYWwxYmFWMGdQU0JrTzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdiV0YwY21sNE8xeHVmVnh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nWVNCa2FYTjBZVzVqWlNCdFlYUnlhWGdnZFhOcGJtY2dZU0JqZFhOMGIyMGdaR2x6ZEdGdVkyVWdablZ1WTNScGIyNHVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSnpmU0JrWVhSaElFbHVjSFYwSUhabFkzUnZjbk1nZEc4Z1kyRnNZM1ZzWVhSbElHUnBjM1JoYm1ObGN5NWNiaUFxSUVCd1lYSmhiU0I3UkdsemRHRnVZMlZOWlhSeWFXTjlJR1JwYzNSaGJtTmxJRU4xYzNSdmJTQmthWE4wWVc1alpTQm1kVzVqZEdsdmJpNWNiaUFxSUVCeVpYUjFjbTRnZTAxaGRISnBlSDBnUTJGc1kzVnNZWFJsWkNCamRYTjBiMjBnWkdsemRHRnVZMlVnYldGMGNtbDRMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kyRnNZMDV2Y20xaGJHbDZaV1JFYVhOMFlXNWpaVTFoZEhKcGVDaGtZWFJoT2lCV1pXTjBiM0p6TENCa2FYTjBZVzVqWlRvZ1JHbHpkR0Z1WTJWTlpYUnlhV01wT2lCTllYUnlhWGdnZTF4dUlDQmpiMjV6ZENCdVNYUmxiWE1nUFNCa1lYUmhMbXhsYm1kMGFEdGNiaUFnWTI5dWMzUWdiV0YwY21sNElEMGdhVzVwZEVOdmIzSmthVzVoZEdWektHNUpkR1Z0Y3l3Z2JrbDBaVzF6TENBd0tUdGNiaUFnYkdWMElHMWhlQ0E5SUU1MWJXSmxjaTVOU1U1ZlZrRk1WVVU3WEc0Z0lHeGxkQ0J0YVc0Z1BTQk9kVzFpWlhJdVRVRllYMVpCVEZWRk8xeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1SmRHVnRjenNnS3l0cEtTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2s3SUdvZ1BDQnVTWFJsYlhNN0lDc3JhaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdaRG9nYm5WdFltVnlJRDBnS0dSaGRHRmJhVjBnUFQwZ2JuVnNiQ2tnZkh3Z0tHUmhkR0ZiYWwwZ1BUMGdiblZzYkNCOGZDQnBJRDA5UFNCcUtTQS9JREFnT2lCa2FYTjBZVzVqWlNoa1lYUmhXMmxkTENCa1lYUmhXMnBkS1R0Y2JpQWdJQ0FnSUcxaGRISnBlRnRwWFZ0cVhTQTlJRzFoZEhKcGVGdHFYVnRwWFNBOUlHUTdYRzRnSUNBZ0lDQnBaaUFvWkNBK0lHMWhlQ2tnYldGNElEMGdaRHRjYmlBZ0lDQWdJR2xtSUNoa0lEd2diV2x1S1NCdGFXNGdQU0JrTzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1SmRHVnRjenNnS3l0cEtTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2tnS3lBeE95QnFJRHdnYmtsMFpXMXpPeUFySzJvcFhHNGdJQ0FnSUNCdFlYUnlhWGhiYVYxYmFsMGdQU0J0WVhSeWFYaGJhbDFiYVYwZ1BTQW9iV0YwY21sNFcybGRXMnBkSUMwZ2JXbHVLU0F2SUNodFlYZ2dMU0J0YVc0cE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCdFlYUnlhWGc3WEc1OVhHNWNiaThxS2lCSFpXNWxjbUYwWlhNZ1lYSnlZWGtnWm5KdmJTQmhJSEpoYm1kbElGdGlaV2RwYmpzZ1pXNWtYU0J2Y2lCYlltVm5hVzQ3SUdWdVpDa2dhV1lnWlc1a1JYaGpiSFZ6YVhabExpQXFLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlc1U1lXNW5aU2hpWldkcGJqb2diblZ0WW1WeUxDQmxibVE2SUc1MWJXSmxjaXdnWlc1a1JYaGpiSFZ6YVhabElEMGdabUZzYzJVcE9pQkpiblF6TWtGeWNtRjVJSHRjYmlBZ1kyOXVjM1FnYmtsMFpXMXpJRDBnWlc1a0lDMGdZbVZuYVc0Z0t5QW9aVzVrUlhoamJIVnphWFpsSUQ4Z01DQTZJREVwTzF4dUlDQmpiMjV6ZENCelpYSnBaWE1nUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2h1U1hSbGJYTXBPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dia2wwWlcxek95QXJLMmtwWEc0Z0lDQWdjMlZ5YVdWelcybGRJRDBnWW1WbmFXNGdLeUJwTzF4dVhHNGdJSEpsZEhWeWJpQnpaWEpwWlhNN1hHNTlYRzVjYmk4cUtseHVJQ29nVW1WMGRYSnVjeUJ2Y21SbGNpQnZaaUIyWVd4MVpYTWdZWE1nYVdZZ2RHaGxlU0JoY21VZ2MyOXlkR1ZrTGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1lXNTVXMTE5SUhaaGJIVmxjeUJKYm5CMWRDQmhjbkpoZVM1Y2JpQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXM0psZG1WeWMyVTlabUZzYzJWZElGZG9aWFJvWlhJZ2RHOGdjbVYwZFhKdUlISmxkbVZ5YzJWa0lHOXlaR1Z5TGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeVcxMTlJRlJvWlNCdmNtUmxjaUJqYjIxd2RYUmxaQzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHRnlaMU52Y25Rb2RtRnNkV1Z6T2lCaGJubGJYU3dnY21WMlpYSnpaU0E5SUdaaGJITmxLVG9nYm5WdFltVnlXMTBnZTF4dUlDQmpiMjV6ZENCemIzSjBabTRnUFNCeVpYWmxjbk5sSUQ4Z0tHRTZJR0Z1ZVZ0ZExDQmlPaUJoYm5sYlhTa2dQVDRnS0dKYk1GMGdMU0JoV3pCZEtTQTZJQ2hoT2lCaGJubGJYU3dnWWpvZ1lXNTVXMTBwSUQwK0lDaGhXekJkSUMwZ1lsc3dYU2s3WEc0Z0lHTnZibk4wSUdSbFkyOXlJRDBnS0hZNklHRnVlU3dnYVRvZ2JuVnRZbVZ5S1NBOVBpQmJkaXdnYVYwN0lDOHZJSE5sZENCcGJtUmxlQ0IwYnlCMllXeDFaVnh1SUNCamIyNXpkQ0IxYm1SbFkyOXlJRDBnS0dFNklHRnVlVnRkS1NBOVBpQmhXekZkT3lBdkx5QnNaV0YyWlNCdmJteDVJR2x1WkdWNFhHNGdJR052Ym5OMElGOWhjbWR6YjNKMElEMGdLR0Z5Y2pvZ1lXNTVXMTBwSUQwK0lHRnljaTV0WVhBb1pHVmpiM0lwTG5OdmNuUW9jMjl5ZEdadUtTNXRZWEFvZFc1a1pXTnZjaWs3WEc0Z0lISmxkSFZ5YmlCZllYSm5jMjl5ZENoMllXeDFaWE1wTzF4dWZWeHVYRzR2S2lwY2JpQXFJRkpsZEhWeWJuTWdkR2hsSUdsdVpHVjRaWE1nYjJZZ2RHaGxJRzF2YzNRZ1pHbDJaWEp6WlNCdlltcGxZM1J6SUdGalkyOXlaR2x1WnlCMGJ5QjBhR1VnWkdsemRDQm1kVzVqZEdsdmJseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR3hsYm1kMGFDQjBiM1JoYkNCdWRXMWlaWElnYjJZZ2IySnFaV04wYzF4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHNGdiblZ0WW1WeUlHOW1JR1JwZG1WeWMyVWdaV3hsYldWdWRITWdkRzhnWm1sdVpGeHVJQ29nUUhCaGNtRnRJSHNvYVRFNklHNTFiV0psY2l3Z2FUSTZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlmU0JrYVhOMElHRWdablZ1WTNScGIyNGdkMmhwWTJnZ1kyRnNZM1ZzWVhSbGN5QmthWE4wWVc1alpTQmlaWFIzWldWdVhHNGdLaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RIZHZJRzlpYW1WamRITWdkWE5wYm1jZ2RHaGxhWElnYVc1a1pYaGxjMXh1SUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY2x0ZGZTQlVhR1VnYVc1a1pYaGxjeUJ2WmlCMGFHVWdiVzl6ZENCa2FYWmxjbk5sSUc5aWFtVmpkSE5jYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRVJwZG1WeWMyVlRkV0p6WlhRb2JHVnVaM1JvT2lCdWRXMWlaWElzSUc0NklHNTFiV0psY2l3Z1pHbHpkRG9nS0dreE9pQnVkVzFpWlhJc0lHa3lPaUJ1ZFcxaVpYSXBJRDArSUc1MWJXSmxjaWs2SUc1MWJXSmxjbHRkSUh0Y2JpQWdablZ1WTNScGIyNGdiV0Y0UW5rb2RtRnNkV1Z6T2lCSmRHVnlZV0pzWlVsMFpYSmhkRzl5UEc1MWJXSmxjajRzSUc5eVpHVnlRbms2SUNocE9pQnVkVzFpWlhJcElEMCtJRzUxYldKbGNpa2dlMXh1SUNBZ0lHeGxkQ0J0WVhoV1lXeDFaU0E5SUc1MWJHdzdYRzRnSUNBZ2JHVjBJRzFoZUU5eVpHVnlRbmtnUFNCdWRXeHNPMXh1WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JsYkdWdFpXNTBJRzltSUhaaGJIVmxjeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdaV3hsYldWdWRFOXlaR1Z5UW5rZ1BTQnZjbVJsY2tKNUtHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ2FXWWdLRzFoZUU5eVpHVnlRbmtnUFQwZ2JuVnNiQ0I4ZkNCbGJHVnRaVzUwVDNKa1pYSkNlU0ErSUcxaGVFOXlaR1Z5UW5rcElIdGNiaUFnSUNBZ0lDQWdiV0Y0Vm1Gc2RXVWdQU0JsYkdWdFpXNTBPMXh1SUNBZ0lDQWdJQ0J0WVhoUGNtUmxja0o1SUQwZ1pXeGxiV1Z1ZEU5eVpHVnlRbms3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdFlYaFdZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lHTnZibk4wSUhOMVluTmxkQ0E5SUZ0eVlXNWtiMjFKYm5Rb2JHVnVaM1JvSUMwZ01TbGRPMXh1SUNCamIyNXpkQ0JqYjIxd2JHVnRaVzUwSUQwZ2JtVjNJRk5sZENncE8xeHVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JHVnVaM1JvT3lBcksya3BJSHRjYmlBZ0lDQnBaaUFvSVhOMVluTmxkQzVwYm1Oc2RXUmxjeWhwS1NsY2JpQWdJQ0FnSUdOdmJYQnNaVzFsYm5RdVlXUmtLR2twTzF4dUlDQjlYRzVjYmlBZ2QyaHBiR1VnS0hOMVluTmxkQzVzWlc1bmRHZ2dQQ0J1S1NCN1hHNGdJQ0FnWTI5dWMzUWdhV1I0SUQwZ2JXRjRRbmtvWEc0Z0lDQWdJQ0JqYjIxd2JHVnRaVzUwTG5aaGJIVmxjeWdwSUdGeklFbDBaWEpoWW14bFNYUmxjbUYwYjNJOGJuVnRZbVZ5UGl4Y2JpQWdJQ0FnSUNocEtTQTlQaUJOWVhSb0xtMXBiaTVoY0hCc2VTaE5ZWFJvTENCemRXSnpaWFF1YldGd0tHWjFibU4wYVc5dUtIWmhiQ3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1JwYzNRb2FTd2dkbUZzS1R0Y2JpQWdJQ0FnSUgwcEtTazdYRzRnSUNBZ2FXWWdLR2xrZUNrZ2UxeHVJQ0FnSUNBZ2MzVmljMlYwTG5CMWMyZ29hV1I0S1R0Y2JpQWdJQ0FnSUdOdmJYQnNaVzFsYm5RdVpHVnNaWFJsS0dsa2VDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCemRXSnpaWFE3WEc1OVhHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QnViM0p0WVd4cGVtVmtJSFpsWTNSdmNpNWNiaUFxSUZ4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSjlJR1JoZEdFZ2JuVnRaWEpwWTJGc0lHRnljbUY1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnViM0p0WVd4cGVtVW9aR0YwWVRvZ1ZtVmpkRzl5S1RvZ1ZtVmpkRzl5SUh0Y2JpQWdZMjl1YzNRZ2JHVnVJRDBnWkdGMFlTNXNaVzVuZEdnN1hHNGdJR3hsZENCemRXMGdQU0F3TzF4dUlDQnNaWFFnYzNWdFQyWlRjWFZoY21WeklEMGdNRHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR3hsYmpzZ0t5dHBLU0I3WEc0Z0lDQWdjM1Z0SUNzOUlHUmhkR0ZiYVYwN1hHNGdJQ0FnYzNWdFQyWlRjWFZoY21WeklDczlJR1JoZEdGYmFWMGdLaW9nTWp0Y2JpQWdmVnh1WEc0Z0lHTnZibk4wSUcxbFlXNGdQU0J6ZFcwZ0x5QnNaVzQ3WEc0Z0lHTnZibk4wSUhOMFpFUmxka2x1ZG1WeWMyVWdQU0F4TGpBZ0x5Qk5ZWFJvTG5OeGNuUW9jM1Z0VDJaVGNYVmhjbVZ6SUM4Z2JHVnVJQzBnYldWaGJpQXFLaUF5S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUd4bGJqc2dLeXRwS1Z4dUlDQWdJR1JoZEdGYmFWMGdQU0FvWkdGMFlWdHBYU0F0SUcxbFlXNHBJQ29nYzNSa1JHVjJTVzUyWlhKelpUdGNibHh1SUNCeVpYUjFjbTRnWkdGMFlUdGNibjFjYmx4dUx5b3FYRzRnS2lCR2FXNWtjeUJ6WlhRZ1pHbG1abVZ5Wlc1alpTQmlaWFIzWldWdUlIUjNieUJzYVhOMGN5NWNiaUFxSUVCd1lYSmhiU0I3WVc1NVcxMTlJR0VnVkdobElHWnBjbk4wSUd4cGMzUXVYRzRnS2lCQWNHRnlZVzBnZTJGdWVWdGRmU0JpSUZSb1pTQnpaV052Ym1RZ2JHbHpkQzVjYmlBcUlFQnlaWFIxY200Z2UyRnVlVnRkZlZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjMlYwUkdsbVptVnlaVzVqWlNoaE9pQmhibmxiWFN3Z1lqb2dZVzU1VzEwcE9pQmhibmxiWFNCN1hHNGdJR052Ym5OMElHSlRaWFFnUFNCdVpYY2dVMlYwS0dJcE8xeHVJQ0J5WlhSMWNtNGdRWEp5WVhrdVpuSnZiU2h1WlhjZ1UyVjBLR0V1Wm1sc2RHVnlLQ2g0S1NBOVBpQWhZbE5sZEM1b1lYTW9lQ2twS1M1MllXeDFaWE1vS1NrN1hHNTlYRzRpWFgwPSIsIi8qKiBQcm94eSBmb3IgRGlzdGFuY2VNYXRyaXggY2xhc3MuIEFsbG93cyB0byBpbmRleCBtYXRyaXggYXMgbWF0cml4W2ldW2pdXG4gKiBOb3RlOiBtdWNoIHNsb3dlciB0aGFuIGRpcmVjdCBpbmRleGluZywgYnV0IHN0aWxsIG11Y2ggZmFzdGVyIHRoYW4gcmVjYWxjdWxhdGluZyBkaXN0YW5jZXMuXG4gKiB3aWxsIGJlIHVzZWQgZm9yIFQtU05FIG1haW5seS5cbiAqIEBwYXJhbSB7RmxvYXQzMkFycmF5fWNvbmRlbnNlZEFycmF5IC0gYXJyYXkgb2YgZGlzdGFuY2VzIGJldHdlZW4gYWxsIHBhaXJzIG9mIG9iamVjdHNcbiAqIEBwYXJhbSB7bnVtYmVyfXNpemUgLSBudW1iZXIgb2YgY29tcGFyZWJsZXMgaW4gbWF0cml4XG4gKiBAcmV0dXJuIHtGbG9hdDMyQXJyYXl9IC0gcHJveHkgZm9yIGNvbmRlbnNlZEFycmF5XG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGRpc3RhbmNlTWF0cml4UHJveHkoY29uZGVuc2VkQXJyYXksIHNpemUpIHtcbiAgICBjb25zdCBsaW5lYXJGdW5jID0gZG1MaW5lYXJJbmRleChzaXplKTtcbiAgICBmdW5jdGlvbiBsaW5lYXJJbmRleChpLCBqKSB7XG4gICAgICAgIGNvbnN0IGlOdW0gPSBOdW1iZXIoaSk7XG4gICAgICAgIGNvbnN0IGpOdW0gPSBOdW1iZXIoaik7XG4gICAgICAgIHJldHVybiBsaW5lYXJGdW5jKGlOdW0sIGpOdW0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpZHgySGFuZGxlcihpZHgxKSB7XG4gICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgZ2V0KHRhcmdldCwgaWR4MiwgX3JlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlkeDEgPT09IGlkeDIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVhcklkeCA9IE51bWJlcihpZHgxKSA+IE51bWJlcihpZHgyKSA/IGxpbmVhckluZGV4KGlkeDIsIGlkeDEpIDogbGluZWFySW5kZXgoaWR4MSwgaWR4Mik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtsaW5lYXJJZHhdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGlkeDFIYW5kbGVyID0ge1xuICAgICAgICBnZXQodGFyZ2V0LCBpZHgxLCBfcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChpZHgxID09PSAnbGVuZ3RoJylcbiAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJveHkodGFyZ2V0LCBpZHgySGFuZGxlcihpZHgxKSk7XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFByb3h5KGNvbmRlbnNlZEFycmF5LCBpZHgxSGFuZGxlcik7XG59XG5leHBvcnQgZnVuY3Rpb24gZG1MaW5lYXJJbmRleChzaXplKSB7XG4gICAgcmV0dXJuIChpLCBqKSA9PiBzaXplICogaSArIGogLSBNYXRoLmZsb29yKCgoaSArIDIpICogKGkgKyAxKSkgLyAyKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWNISnZlSGt1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SndjbTk0ZVM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkZRVHM3T3pzN08wVkJUVVU3UVVGRFJpeE5RVUZOTEZWQlFWVXNiVUpCUVcxQ0xFTkJRVU1zWTBGQk5FSXNSVUZCUlN4SlFVRlpPMGxCUXpWRkxFMUJRVTBzVlVGQlZTeEhRVUZITEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOMlF5eFRRVUZUTEZkQlFWY3NRMEZCUXl4RFFVRnJRaXhGUVVGRkxFTkJRV3RDTzFGQlEzcEVMRTFCUVUwc1NVRkJTU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRka0lzVDBGQlR5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRMmhETEVOQlFVTTdTVUZGUkN4VFFVRlRMRmRCUVZjc1EwRkJReXhKUVVGeFFqdFJRVU40UXl4UFFVRlBMRU5CUTB3N1dVRkRSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4VFFVRlRPMmRDUVVONlFpeEpRVUZKTEVsQlFVa3NTMEZCU3l4SlFVRkpPMjlDUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTTFRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTnNSeXhQUVVGUExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0WlFVTXpRaXhEUVVGRE8xTkJRMFlzUTBGRFJpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVTkVMRTFCUVUwc1YwRkJWeXhIUVVFclFqdFJRVU01UXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeFRRVUZUTzFsQlEzcENMRWxCUVVrc1NVRkJTU3hMUVVGTExGRkJRVkU3WjBKQlFVVXNUMEZCVHl4SlFVRkpMRU5CUVVNN1dVRkRia01zVDBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZET1VNc1EwRkJRenRMUVVOR0xFTkJRVU03U1VGRlJpeFBRVUZQTEVsQlFVa3NTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dEJRVU5vUkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eEpRVUZaTzBsQlEzaERMRTlCUVU4c1EwRkJReXhEUVVGVExFVkJRVVVzUTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBSaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lYRzVjYmk4cUtpQlFjbTk0ZVNCbWIzSWdSR2x6ZEdGdVkyVk5ZWFJ5YVhnZ1kyeGhjM011SUVGc2JHOTNjeUIwYnlCcGJtUmxlQ0J0WVhSeWFYZ2dZWE1nYldGMGNtbDRXMmxkVzJwZFhHNGdLaUJPYjNSbE9pQnRkV05vSUhOc2IzZGxjaUIwYUdGdUlHUnBjbVZqZENCcGJtUmxlR2x1Wnl3Z1luVjBJSE4wYVd4c0lHMTFZMmdnWm1GemRHVnlJSFJvWVc0Z2NtVmpZV3hqZFd4aGRHbHVaeUJrYVhOMFlXNWpaWE11WEc0Z0tpQjNhV3hzSUdKbElIVnpaV1FnWm05eUlGUXRVMDVGSUcxaGFXNXNlUzVjYmlBcUlFQndZWEpoYlNCN1JteHZZWFF6TWtGeWNtRjVmV052Ym1SbGJuTmxaRUZ5Y21GNUlDMGdZWEp5WVhrZ2IyWWdaR2x6ZEdGdVkyVnpJR0psZEhkbFpXNGdZV3hzSUhCaGFYSnpJRzltSUc5aWFtVmpkSE5jYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlhOcGVtVWdMU0J1ZFcxaVpYSWdiMllnWTI5dGNHRnlaV0pzWlhNZ2FXNGdiV0YwY21sNFhHNGdLaUJBY21WMGRYSnVJSHRHYkc5aGRETXlRWEp5WVhsOUlDMGdjSEp2ZUhrZ1ptOXlJR052Ym1SbGJuTmxaRUZ5Y21GNVhHNHFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1JwYzNSaGJtTmxUV0YwY21sNFVISnZlSGtvWTI5dVpHVnVjMlZrUVhKeVlYazZJRVpzYjJGME16SkJjbkpoZVN3Z2MybDZaVG9nYm5WdFltVnlLVG9nUm14dllYUXpNa0Z5Y21GNUlIdGNiaUFnWTI5dWMzUWdiR2x1WldGeVJuVnVZeUE5SUdSdFRHbHVaV0Z5U1c1a1pYZ29jMmw2WlNrN1hHNGdJR1oxYm1OMGFXOXVJR3hwYm1WaGNrbHVaR1Y0S0drNklITjViV0p2YkNCOElITjBjbWx1Wnl3Z2Fqb2djM2x0WW05c0lId2djM1J5YVc1bktTQjdYRzRnSUNBZ1kyOXVjM1FnYVU1MWJTQTlJRTUxYldKbGNpaHBLVHRjYmlBZ0lDQmpiMjV6ZENCcVRuVnRJRDBnVG5WdFltVnlLR29wTzF4dUlDQWdJSEpsZEhWeWJpQnNhVzVsWVhKR2RXNWpLR2xPZFcwc0lHcE9kVzBwTzF4dUlDQjlYRzVjYmlBZ1puVnVZM1JwYjI0Z2FXUjRNa2hoYm1Sc1pYSW9hV1I0TVRvZ2MzbHRZbTlzSUh3Z2MzUnlhVzVuS1RwUWNtOTRlVWhoYm1Sc1pYSThSbXh2WVhRek1rRnljbUY1UGlCN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnWjJWMEtIUmhjbWRsZEN3Z2FXUjRNaXdnWDNKbFkyVnBkbVZ5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dsa2VERWdQVDA5SUdsa2VESXBJSEpsZEhWeWJpQXdPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hwYm1WaGNrbGtlQ0E5SUU1MWJXSmxjaWhwWkhneEtTQStJRTUxYldKbGNpaHBaSGd5S1NBL0lHeHBibVZoY2tsdVpHVjRLR2xrZURJc0lHbGtlREVwSURvZ2JHbHVaV0Z5U1c1a1pYZ29hV1I0TVN3Z2FXUjRNaWs3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSaGNtZGxkRnRzYVc1bFlYSkpaSGhkTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNrN1hHNGdJSDFjYmlBZ1kyOXVjM1FnYVdSNE1VaGhibVJzWlhJNklGQnliM2g1U0dGdVpHeGxjanhHYkc5aGRETXlRWEp5WVhrK0lEMGdlMXh1SUNBZ0lHZGxkQ2gwWVhKblpYUXNJR2xrZURFc0lGOXlaV05sYVhabGNpa2dlMXh1SUNBZ0lDQWdhV1lnS0dsa2VERWdQVDA5SUNkc1pXNW5kR2duS1NCeVpYUjFjbTRnYzJsNlpUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dVSEp2ZUhrb2RHRnlaMlYwTENCcFpIZ3lTR0Z1Wkd4bGNpaHBaSGd4S1NrN1hHNGdJQ0FnZlN4Y2JpQWdmVHRjYmx4dUlDQnlaWFIxY200Z2JtVjNJRkJ5YjNoNUtHTnZibVJsYm5ObFpFRnljbUY1TENCcFpIZ3hTR0Z1Wkd4bGNpazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2JVeHBibVZoY2tsdVpHVjRLSE5wZW1VNklHNTFiV0psY2lrNklDaHBPaUJ1ZFcxaVpYSXNJR282SUc1MWJXSmxjaWtnUFQ0Z2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlDaHBPaUJ1ZFcxaVpYSXNJR282SUc1MWJXSmxjaWtnUFQ0Z2MybDZaU0FxSUdrZ0t5QnFJQzBnVFdGMGFDNW1iRzl2Y2lnb0tHa2dLeUF5S1NBcUlDaHBJQ3NnTVNrcElDOGdNaWs3WEc1OVhHNGlYWDA9IiwiZXhwb3J0IGNsYXNzIERpc3RhbmNlTWF0cml4U2VydmljZSB7XG4gICAgY29uc3RydWN0b3IodXNlQ29uY3VycmVudFdvcmtlcnMgPSB0cnVlLCB0ZXJtaW5hdGVPbkNvbXBsZXRlID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCB0aHJlYWRDb3VudCA9IG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5O1xuICAgICAgICB0aGlzLl93b3JrZXJDb3VudCA9IHVzZUNvbmN1cnJlbnRXb3JrZXJzID8gTWF0aC5tYXgodGhyZWFkQ291bnQgLSAyLCAxKSA6IDE7XG4gICAgICAgIHRoaXMuX3dvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpLmZpbGwobnVsbClcbiAgICAgICAgICAgIC5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2Rpc3RhbmNlLW1hdHJpeC13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIHRoaXMuX3Rlcm1pbmF0ZU9uQ29tcGxldGUgPSB0ZXJtaW5hdGVPbkNvbXBsZXRlO1xuICAgIH1cbiAgICA7XG4gICAgYXN5bmMgY2FsYyh2YWx1ZXMsIGZuTmFtZSwgbm9ybWFsaXplID0gdHJ1ZSwgb3B0cykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZW4gPSB2YWx1ZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2VzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbExlbmd0aCA9IGxlbiAqIChsZW4gLSAxKSAvIDI7IC8vIHNpemUgb2YgcmVkdWNlZCBkaXN0YW5jZSBtYXRyaXhcbiAgICAgICAgICAgICAgICB0aGlzLl93b3JrZXJDb3VudCA9IE1hdGgubWluKHRoaXMuX3dvcmtlckNvdW50LCB0b3RhbExlbmd0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2h1bmtTaXplID0gdG90YWxMZW5ndGggLyB0aGlzLl93b3JrZXJDb3VudDtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXN0YW5jZU1hdHJpeCA9IG5ldyBGbG9hdDMyQXJyYXkodG90YWxMZW5ndGgpO1xuICAgICAgICAgICAgICAgIGxldCBlbmRSb3cgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBlbmRDb2wgPSAxO1xuICAgICAgICAgICAgICAgIC8vIG1pbm1heCBmb3Igbm9ybWFsaXphdGlvblxuICAgICAgICAgICAgICAgIGxldCBsbWluID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgbG1heCA9IE51bWJlci5NSU5fVkFMVUU7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl93b3JrZXJDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gTWF0aC5mbG9vcihpICogY2h1bmtTaXplKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gKGkgPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSkgPyB0b3RhbExlbmd0aCA6IE1hdGguZmxvb3IoKGkgKyAxKSAqIGNodW5rU2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0Um93ID0gZW5kUm93O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydENvbCA9IGVuZENvbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlc2UgZm9ybXVsYXMgbWFwIHRoZSBsaW5lYXIgaW5kZXggdG8gdGhlIHVwcGVyIHRyaWFuZ3VsYXIgbWF0cml4IGluZGljZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFJvdyA9IGxlbiAtIDIgLSBNYXRoLmZsb29yKE1hdGguc3FydCgtOCAqIGVuZCArIDQgKiBsZW4gKiAobGVuIC0gMSkgLSA3KSAvIDIgLSAwLjUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kQ29sID0gZW5kIC0gbGVuICogZW5kUm93ICsgTWF0aC5mbG9vcigoZW5kUm93ICsgMSkgKiAoZW5kUm93ICsgMikgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl93b3JrZXJzW2ldLnBvc3RNZXNzYWdlKHsgdmFsdWVzLCBmbk5hbWUsIHN0YXJ0Um93LCBzdGFydENvbCwgY2h1bmNrU2l6ZTogZW5kIC0gc3RhcnQsIG9wdHMgfSk7XG4gICAgICAgICAgICAgICAgICAgIHByb21pc2VzW2ldID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fd29ya2Vyc1tpXS5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGVycm9yLCBkaXN0YW5jZU1hdHJpeERhdGEsIG1pbiwgbWF4IH0gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rlcm1pbmF0ZU9uQ29tcGxldGUgJiYgdGhpcy5fd29ya2Vyc1tpXS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlTWF0cml4LnNldChkaXN0YW5jZU1hdHJpeERhdGEsIHN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbiA8IGxtaW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbWluID0gbWluO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF4ID4gbG1heClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxtYXggPSBtYXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemUpXG4gICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlTWF0cml4LmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4geyBkaXN0YW5jZU1hdHJpeFtpbmRleF0gPSAodmFsdWUgLSBsbWluKSAvIChsbWF4IC0gbG1pbik7IH0pO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoZGlzdGFuY2VNYXRyaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB0ZXJtaW5hdGUoKSB7XG4gICAgICAgIHRoaXMuX3dvcmtlcnMuZm9yRWFjaCgod29ya2VyKSA9PiB3b3JrZXIudGVybWluYXRlKCkpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHbHpkR0Z1WTJVdGJXRjBjbWw0TFhObGNuWnBZMlV1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SmthWE4wWVc1alpTMXRZWFJ5YVhndGMyVnlkbWxqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkZRU3hOUVVGTkxFOUJRVThzY1VKQlFYRkNPMGxCU1RsQ0xGbEJRVzFDTEc5Q1FVRnZRaXhIUVVGSExFbEJRVWtzUlVGQlJTeHRRa0ZCYlVJc1IwRkJSeXhKUVVGSk8xRkJRM2hGTEUxQlFVMHNWMEZCVnl4SFFVRkhMRk5CUVZNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXp0UlFVTnNSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEc5Q1FVRnZRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmRCUVZjc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNMVJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRE8yRkJRM0JFTEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl3d1FrRkJNRUlzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU12UlN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU03U1VGRGJFUXNRMEZCUXp0SlFVRkJMRU5CUVVNN1NVRkZTeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZKTEUxQlFTdENMRVZCUVVVc1RVRkJiMElzUlVGRGVFVXNVMEZCVXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hKUVVGNVFqdFJRVU16UXl4UFFVRlBMRWxCUVVrc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVN1dVRkRNME1zU1VGQlNUdG5Ra0ZEUml4TlFVRk5MRWRCUVVjc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETzJkQ1FVTXhRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCWjBJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzJkQ1FVTTNSQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNhME5CUVd0RE8yZENRVU16UlN4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBRc1RVRkJUU3hUUVVGVExFZEJRVWNzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1owSkJRMnhFTEUxQlFVMHNZMEZCWXl4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzJkQ1FVTnlSQ3hKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTJZc1NVRkJTU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTm1MREpDUVVFeVFqdG5Ra0ZETTBJc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTmlMRWxCUVVrc1NVRkJTU3hIUVVGSExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTTdaMEpCUXpWQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMjlDUVVNeFF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXp0dlFrRkRlRU1zVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRPMjlDUVVNeFJpeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRU5CUVVNN2IwSkJRM2hDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkJRenR2UWtGRGVFSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eERRVUZETEVWQlFVVTdkMEpCUXk5Q0xEWkZRVUUyUlR0M1FrRkROMFVzVFVGQlRTeEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dDNRa0ZEZGtZc1RVRkJUU3hIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5GTzI5Q1FVTkVMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRlZCUVZVc1JVRkJSU3hIUVVGSExFZEJRVWNzUzBGQlN5eEZRVUZGTEVsQlFVa3NSVUZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRMnhITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEdGQlFXRXNSVUZCUlN4WlFVRlpMRVZCUVVVc1JVRkJSVHQzUWtGRGVFUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RlFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRExFdEJRVXNzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZETEVWQlFVTXNSVUZCVVN4RlFVRkZPelJDUVVOdVJpeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6czBRa0ZETVVRc1NVRkJTU3hMUVVGTExFVkJRVVU3WjBOQlExUXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE96WkNRVU55UWp0cFEwRkJUVHRuUTBGRFRDeGpRVUZqTEVOQlFVTXNSMEZCUnl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMmREUVVNNVF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4SlFVRkpPMjlEUVVOYUxFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTTdaME5CUTJJc1NVRkJTU3hIUVVGSExFZEJRVWNzU1VGQlNUdHZRMEZEV2l4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRE8yZERRVU5pTEdGQlFXRXNSVUZCUlN4RFFVRkRPelpDUVVOcVFqdDNRa0ZEU0N4RFFVRkRMRU5CUVVNN2IwSkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdhVUpCUTBvN1owSkJRMFFzVFVGQlRTeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8yZENRVU0xUWl4SlFVRkpMRk5CUVZNN2IwSkJRMWdzWTBGQll5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeEhRVUZITEdOQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVONFJ5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1lVRkRla0k3V1VGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0blFrRkRWaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdZVUZEV0R0UlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dEpRVVZOTEZOQlFWTTdVVUZEWkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZUVRc1EwRkJRenREUVVOS0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdExibTkzYmsxbGRISnBZM045SUdaeWIyMGdKeTR1TDNSNWNHVmtMVzFsZEhKcFkzTW5PMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdSR2x6ZEdGdVkyVk5ZWFJ5YVhoVFpYSjJhV05sSUh0Y2JpQWdJQ0J3Y21sMllYUmxJRjkzYjNKclpYSnpPaUJYYjNKclpYSmJYVHRjYmlBZ0lDQndjbWwyWVhSbElGOTNiM0pyWlhKRGIzVnVkRG9nYm5WdFltVnlPMXh1SUNBZ0lIQnlhWFpoZEdVZ1gzUmxjbTFwYm1GMFpVOXVRMjl0Y0d4bGRHVTZJR0p2YjJ4bFlXNDdYRzRnSUNBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtIVnpaVU52Ym1OMWNuSmxiblJYYjNKclpYSnpJRDBnZEhKMVpTd2dkR1Z5YldsdVlYUmxUMjVEYjIxd2JHVjBaU0E5SUhSeWRXVXBJSHRjYmlBZ0lDQWdJR052Ym5OMElIUm9jbVZoWkVOdmRXNTBJRDBnYm1GMmFXZGhkRzl5TG1oaGNtUjNZWEpsUTI5dVkzVnljbVZ1WTNrN1hHNGdJQ0FnSUNCMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENBOUlIVnpaVU52Ym1OMWNuSmxiblJYYjNKclpYSnpJRDhnVFdGMGFDNXRZWGdvZEdoeVpXRmtRMjkxYm5RZ0xTQXlMQ0F4S1NBNklERTdYRzRnSUNBZ0lDQjBhR2x6TGw5M2IzSnJaWEp6SUQwZ2JtVjNJRUZ5Y21GNUtIUm9hWE11WDNkdmNtdGxja052ZFc1MEtTNW1hV3hzS0c1MWJHd3BYRzRnSUNBZ0lDQWdJQzV0WVhBb0tDa2dQVDRnYm1WM0lGZHZjbXRsY2lodVpYY2dWVkpNS0NjdUwyUnBjM1JoYm1ObExXMWhkSEpwZUMxM2IzSnJaWEluTENCcGJYQnZjblF1YldWMFlTNTFjbXdwS1NrN1hHNGdJQ0FnSUNCMGFHbHpMbDkwWlhKdGFXNWhkR1ZQYmtOdmJYQnNaWFJsSUQwZ2RHVnliV2x1WVhSbFQyNURiMjF3YkdWMFpUdGNiaUFnSUNCOU8xeHVYRzRnSUNBZ2NIVmliR2xqSUdGemVXNWpJR05oYkdNOFZENG9kbUZzZFdWek9pQkJjbkpoZVR4VVBpQjhJRUZ5Y21GNVRHbHJaVHhVUGl3Z1ptNU9ZVzFsT2lCTGJtOTNiazFsZEhKcFkzTXNYRzRnSUNBZ0lDQnViM0p0WVd4cGVtVWdQU0IwY25WbExDQnZjSFJ6UHpvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOUtUb2dVSEp2YldselpUeEdiRzloZERNeVFYSnlZWGsrSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNoaGMzbHVZeUFvY21WemIyeDJaU3dnY21WcVpXTjBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYkdWdUlEMGdkbUZzZFdWekxteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd2NtOXRhWE5sY3lBOUlHNWxkeUJCY25KaGVUeFFjbTl0YVhObFBIWnZhV1ErUGloMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RHOTBZV3hNWlc1bmRHZ2dQU0JzWlc0Z0tpQW9iR1Z1SUMwZ01Ta2dMeUF5T3lBdkx5QnphWHBsSUc5bUlISmxaSFZqWldRZ1pHbHpkR0Z1WTJVZ2JXRjBjbWw0WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RZ1BTQk5ZWFJvTG0xcGJpaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDd2dkRzkwWVd4TVpXNW5kR2dwTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdOb2RXNXJVMmw2WlNBOUlIUnZkR0ZzVEdWdVozUm9JQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblE3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkdsemRHRnVZMlZOWVhSeWFYZ2dQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLSFJ2ZEdGc1RHVnVaM1JvS1R0Y2JpQWdJQ0FnSUNBZ0lDQnNaWFFnWlc1a1VtOTNJRDBnTUR0Y2JpQWdJQ0FnSUNBZ0lDQnNaWFFnWlc1a1EyOXNJRDBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJ0YVc1dFlYZ2dabTl5SUc1dmNtMWhiR2w2WVhScGIyNWNiaUFnSUNBZ0lDQWdJQ0JzWlhRZ2JHMXBiaUE5SURBN1hHNGdJQ0FnSUNBZ0lDQWdiR1YwSUd4dFlYZ2dQU0JPZFcxaVpYSXVUVWxPWDFaQlRGVkZPMXh1SUNBZ0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhjblFnUFNCTllYUm9MbVpzYjI5eUtHa2dLaUJqYUhWdWExTnBlbVVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1pXNWtJRDBnS0drZ1BUMDlJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBJQzBnTVNrZ1B5QjBiM1JoYkV4bGJtZDBhQ0E2SUUxaGRHZ3VabXh2YjNJb0tHa2dLeUF4S1NBcUlHTm9kVzVyVTJsNlpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6ZEdGeWRGSnZkeUE5SUdWdVpGSnZkenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBRMjlzSUQwZ1pXNWtRMjlzTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0drZ0lUMDlJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBJQzBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QlVhR1Z6WlNCbWIzSnRkV3hoY3lCdFlYQWdkR2hsSUd4cGJtVmhjaUJwYm1SbGVDQjBieUIwYUdVZ2RYQndaWElnZEhKcFlXNW5kV3hoY2lCdFlYUnlhWGdnYVc1a2FXTmxjMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmxibVJTYjNjZ1BTQnNaVzRnTFNBeUlDMGdUV0YwYUM1bWJHOXZjaWhOWVhSb0xuTnhjblFvTFRnZ0tpQmxibVFnS3lBMElDb2diR1Z1SUNvZ0tHeGxiaUF0SURFcElDMGdOeWtnTHlBeUlDMGdNQzQxS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWlc1a1EyOXNJRDBnWlc1a0lDMGdiR1Z1SUNvZ1pXNWtVbTkzSUNzZ1RXRjBhQzVtYkc5dmNpZ29aVzVrVW05M0lDc2dNU2tnS2lBb1pXNWtVbTkzSUNzZ01pa2dMeUF5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WDNkdmNtdGxjbk5iYVYwdWNHOXpkRTFsYzNOaFoyVW9lM1poYkhWbGN5d2dabTVPWVcxbExDQnpkR0Z5ZEZKdmR5d2djM1JoY25SRGIyd3NJR05vZFc1amExTnBlbVU2SUdWdVpDQXRJSE4wWVhKMExDQnZjSFJ6ZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3Y205dGFYTmxjMXRwWFNBOUlHNWxkeUJRY205dGFYTmxLQ2h5WlhOdmJIWmxWMjl5YTJWeUxDQnlaV3BsWTNSWGIzSnJaWElwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVmZDI5eWEyVnljMXRwWFM1dmJtMWxjM05oWjJVZ1BTQW9lMlJoZEdFNklIdGxjbkp2Y2l3Z1pHbHpkR0Z1WTJWTllYUnlhWGhFWVhSaExDQnRhVzRzSUcxaGVIMTlLVG9nZG05cFpDQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWZkR1Z5YldsdVlYUmxUMjVEYjIxd2JHVjBaU0FtSmlCMGFHbHpMbDkzYjNKclpYSnpXMmxkTG5SbGNtMXBibUYwWlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WcVpXTjBWMjl5YTJWeUtHVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHbHpkR0Z1WTJWTllYUnlhWGd1YzJWMEtHUnBjM1JoYm1ObFRXRjBjbWw0UkdGMFlTd2djM1JoY25RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0cxcGJpQThJR3h0YVc0cFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3h0YVc0Z1BTQnRhVzQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iV0Y0SUQ0Z2JHMWhlQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHMWhlQ0E5SUcxaGVEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVlhiM0pyWlhJb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2NISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNodWIzSnRZV3hwZW1VcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaVTFoZEhKcGVDNW1iM0pGWVdOb0tDaDJZV3gxWlN3Z2FXNWtaWGdwSUQwK0lIc2daR2x6ZEdGdVkyVk5ZWFJ5YVhoYmFXNWtaWGhkSUQwZ0tIWmhiSFZsSUMwZ2JHMXBiaWtnTHlBb2JHMWhlQ0F0SUd4dGFXNHBPeUI5S1R0Y2JpQWdJQ0FnSUNBZ0lDQnlaWE52YkhabEtHUnBjM1JoYm1ObFRXRjBjbWw0S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGFtVmpkQ2hsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUhSbGNtMXBibUYwWlNncE9pQjJiMmxrSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYM2R2Y210bGNuTXVabTl5UldGamFDZ29kMjl5YTJWeUtTQTlQaUIzYjNKclpYSXVkR1Z5YldsdVlYUmxLQ2twTzF4dUlDQWdJSDFjYm4xY2JpSmRmUT09IiwiaW1wb3J0IHsgY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UsIGZpbGxSYW5kb21NYXRyaXgsIHZlY3RvckFkZCwgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyByYW5kb21JbnQgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9yYW5kb20nO1xuaW1wb3J0IHsgRGlzdGFuY2VNYXRyaXhTZXJ2aWNlLCBkbUxpbmVhckluZGV4IH0gZnJvbSAnLi9kaXN0YW5jZS1tYXRyaXgnO1xuLyoqXG4gKiBJbXBsZW1lbnRzIHN0b2NoYXN0aWMgcHJveGltaXR5IGVtYmVkZGluZy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgU1BFQmFzZVxuICogQGxpbmsgZG9pOjEwLjEwMTYvUzEwOTMtMzI2MygwMykwMDE1NS00XG4gKi9cbmNsYXNzIFNQRUJhc2Uge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgU1BFQmFzZS5cbiAgICAgKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXSBPcHRpb25zIHRvIHBhc3MgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAqIEBtZW1iZXJvZiBTUEVCYXNlXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICB0aGlzLnN0ZXBzID0gb3B0aW9ucz8uc3RlcHMgPz8gMDtcbiAgICAgICAgdGhpcy5jeWNsZXMgPSBvcHRpb25zPy5jeWNsZXMgPz8gMWU2O1xuICAgICAgICAvLyBTZWxlY3QgYSBjdXRvZmYgZGlzdGFuY2Uge2N1dG9mZn0gYW5kIC4uLlxuICAgICAgICB0aGlzLmN1dG9mZiA9IG9wdGlvbnM/LmN1dG9mZiA/PyAwO1xuICAgICAgICAvLyAuLi4gYW4gaW5pdGlhbCBsZWFybmluZyByYXRlIHtsYW1iZGF9ID4gMFxuICAgICAgICB0aGlzLmxhbWJkYSA9IG9wdGlvbnM/LmxhbWJkYSA/PyAyLjA7XG4gICAgICAgIHRoaXMuZGxhbWJkYSA9IG9wdGlvbnM/LmRsYW1iZGEgPz8gMC4wMTtcbiAgICAgICAgdGhpcy5sYW1iZGEyID0gdGhpcy5sYW1iZGEgLyAyLjtcbiAgICAgICAgdGhpcy5kbGFtYmRhMiA9IHRoaXMuZGxhbWJkYSAvIDIuO1xuICAgICAgICB0aGlzLmVwc2lsb24gPSBvcHRpb25zPy5lcHNpbG9uID8/IDFlLTEwO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYnJhY2Utc3R5bGVcbiAgICAgICAgdGhpcy5kaXN0YW5jZUZ1bmN0aW9uID0gb3B0aW9ucz8uZGlzdGFuY2UgPz8gY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2U7XG4gICAgICAgIHRoaXMuZGlzdGFuY2UgPSBuZXcgRmxvYXQzMkFycmF5KCk7XG4gICAgICAgIHRoaXMuZGlzdGFuY2VGdW5jdGlvbk5hbWUgPSBvcHRpb25zPy5kaXN0YW5jZUZ1bmN0aW9uTmFtZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgZGlzdGFuY2UgbWF0cml4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtWZWN0b3JzfSB2ZWN0b3JzIElucHV0IHZlY3RvcnMgdG8gY2FsY3VsYXRlIGRpc3RhbmNlIGJldHdlZW4uXG4gICAgICogQG1lbWJlcm9mIFNQRUJhc2VcbiAgICAgKi9cbiAgICBhc3luYyBpbml0RGlzdGFuY2UodmVjdG9ycykge1xuICAgICAgICB0aGlzLmRtSW5kZXhGdW5jdCA9IGRtTGluZWFySW5kZXgodmVjdG9ycy5sZW5ndGgpO1xuICAgICAgICBjb25zdCBtYXRyaXhTZXJ2aWNlID0gbmV3IERpc3RhbmNlTWF0cml4U2VydmljZSh0cnVlLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuZGlzdGFuY2UgPSBhd2FpdCBtYXRyaXhTZXJ2aWNlLmNhbGModmVjdG9ycywgdGhpcy5kaXN0YW5jZUZ1bmN0aW9uTmFtZSk7XG4gICAgICAgIG1hdHJpeFNlcnZpY2UudGVybWluYXRlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdHdvIHZlY3RvcnMgZ2l2ZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1ZlY3RvcnN9IHZlY3RvcnMgU2V0IG9mIHZlY3RvcnMgdG8gY2FsY3VsYXRlIGRpc3RhbmNlcyBiZXR3ZWVuLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleDEgSW5kZXggb2YgdGhlIGZpcnN0IHZlY3RvciBvZiB0aGUgcGFpci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgyIEluZGV4IG9mIHRoZSBzZWNvbmQgdmVjdG9yIG9mIHRoZSBwYWlyLlxuICAgICAqIEByZXR1cm4ge251bWJlcn0gRGlzdGFuY2UgYmV0d2VlbiB0aGVzZSB0d28gdmVjdG9ycy5cbiAgICAgKi9cbiAgICBjYWxjRGlzdGFuY2UodmVjdG9ycywgaW5kZXgxLCBpbmRleDIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzdGFuY2VbdGhpcy5kbUluZGV4RnVuY3QoaW5kZXgxLCBpbmRleDIpXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW1iZWRzIHRoZSB2ZWN0b3JzIGdpdmVuIGludG8gYSB0d28tZGltZW5zaW9uYWwgc3BhY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1ZlY3RvcnN9IHZlY3RvcnMgRC1kaW1lbnNpb25hbCBjb29yZGluYXRlcy5cbiAgICAgKiBAcmV0dXJuIHtDb29yZGluYXRlc30gU1BFIGNvb3JkaW5hdGVzIGluIEQgc3BhY2UuXG4gICAgICovXG4gICAgYXN5bmMgZW1iZWQodmVjdG9ycykge1xuICAgICAgICBjb25zdCBuSXRlbXMgPSB2ZWN0b3JzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgYXJlYVdpZHRoID0gNDA7XG4gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIEQtZGltZW5zaW9uYWwgY29vcmRpbmF0ZXMgb2YgdGhlIE4gcG9pbnRzLlxuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGZpbGxSYW5kb21NYXRyaXgobkl0ZW1zLCBTUEVCYXNlLmRpbWVuc2lvbiwgYXJlYVdpZHRoKTtcbiAgICAgICAgbGV0IGxhbWJkYTIgPSB0aGlzLmxhbWJkYTI7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBzID09PSAwKVxuICAgICAgICAgICAgdGhpcy5zdGVwcyA9IHZlY3RvcnMubGVuZ3RoIC0gMTtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0RGlzdGFuY2UodmVjdG9ycyk7XG4gICAgICAgIGZvciAobGV0IGN5Y2xlID0gMDsgY3ljbGUgPCB0aGlzLmN5Y2xlczsgKytjeWNsZSkge1xuICAgICAgICAgICAgZm9yIChsZXQgc3RlcCA9IDA7IHN0ZXAgPCB0aGlzLnN0ZXBzOyArK3N0ZXApIHtcbiAgICAgICAgICAgICAgICAvLyBTZWxlY3QgdHdvIHBvaW50cywgaSBhbmQgaiwgYXQgcmFuZG9tLCAuLi5cbiAgICAgICAgICAgICAgICBjb25zdCBpID0gcmFuZG9tSW50KG5JdGVtcyk7XG4gICAgICAgICAgICAgICAgbGV0IGogPSByYW5kb21JbnQobkl0ZW1zKTtcbiAgICAgICAgICAgICAgICB3aGlsZSAoaSA9PSBqKVxuICAgICAgICAgICAgICAgICAgICBqID0gcmFuZG9tSW50KG5JdGVtcyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93aSA9IGNvb3JkaW5hdGVzW2ldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvd2ogPSBjb29yZGluYXRlc1tqXTtcbiAgICAgICAgICAgICAgICAvLyAuLi4gcmV0cmlldmUgKG9yIGV2YWx1YXRlKSB0aGVpciBwcm94aW1pdHkgaW4gdGhlIGlucHV0IHNwYWNlLCByaWogYW5kIC4uLlxuICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB0aGlzLmNhbGNEaXN0YW5jZSh2ZWN0b3JzLCBpLCBqKTtcbiAgICAgICAgICAgICAgICAvLyAuLi4gY29tcHV0ZSB0aGVpciBFdWNsaWRlYW4gZGlzdGFuY2Ugb24gdGhlIEQtZGltZW5zaW9uYWwgbWFwLCBkaWouXG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlKHJvd2ksIHJvd2opO1xuICAgICAgICAgICAgICAgIC8vIElmIHJpaiA8PSByYywgb3IgaWYgcmlqID4gcmMgYW5kIGRpaiA8IHJpaiAuLi5cbiAgICAgICAgICAgICAgICBpZiAoKHRoaXMuY3V0b2ZmID09IDApIHx8IChyIDw9IHRoaXMuY3V0b2ZmKSB8fCAoZCA8IHIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG11bHRpcGxpZXIgPSBsYW1iZGEyICogKHIgLSBkKSAvIChkICsgdGhpcy5lcHNpbG9uKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gLi4uIHVwZGF0ZSB0aGUgY29vcmRpbmF0ZXMgeGkgYW5kIHhqLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWZmSUogPSB2ZWN0b3JBZGQocm93aSwgcm93aiwgLTEpO1xuICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlc1tpXSA9IHZlY3RvckFkZChyb3dpLCBkaWZmSUosIG11bHRpcGxpZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlc1tqXSA9IHZlY3RvckFkZChyb3dqLCBkaWZmSUosIC1tdWx0aXBsaWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBEZWNyZWFzZSB0aGUgbGVhcm5pbmcgcmF0ZSB7bGFtYmRhfSBieSBhIHByZXNjcmliZWQge2RsYW1iZGF9LlxuICAgICAgICAgICAgbGFtYmRhMiAtPSB0aGlzLmRsYW1iZGEyO1xuICAgICAgICAgICAgaWYgKGxhbWJkYTIgPD0gMC4pXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvb3JkaW5hdGVzO1xuICAgIH1cbn1cblNQRUJhc2UuZGltZW5zaW9uID0gMjtcbmV4cG9ydCB7IFNQRUJhc2UgfTtcbi8qKlxuICogSW1wbGVtZW50cyBtb2RpZmllZCBzdG9jaGFzdGljIHByb3hpbWl0eSBlbWJlZGRpbmcuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFBTUEVCYXNlXG4gKiBAbGluayBkb2k6MTAuMTAxNi9TMTA5My0zMjYzKDAzKTAwMTU1LTRcbiAqL1xuZXhwb3J0IGNsYXNzIFBTUEVCYXNlIGV4dGVuZHMgU1BFQmFzZSB7XG4gICAgLyoqXG4gICAgICogRW1iZWRzIHRoZSB2ZWN0b3JzIGdpdmVuIGludG8gYSB0d28tZGltZW5zaW9uYWwgc3BhY2UgdXNpbmcgYSBtb2RpZmllZCB1cGRhdGUgcnVsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7VmVjdG9yc30gdmVjdG9ycyBELWRpbWVuc2lvbmFsIGNvb3JkaW5hdGVzLlxuICAgICAqIEByZXR1cm4ge0Nvb3JkaW5hdGVzfSBTUEUgY29vcmRpbmF0ZXMgaW4gRCBzcGFjZS5cbiAgICAgKi9cbiAgICBhc3luYyBlbWJlZCh2ZWN0b3JzKSB7XG4gICAgICAgIGNvbnN0IG5JdGVtcyA9IHZlY3RvcnMubGVuZ3RoO1xuICAgICAgICBjb25zdCBhcmVhV2lkdGggPSA0MDtcbiAgICAgICAgLy8gIEluaXRpYWxpemUgdGhlIEQtZGltZW5zaW9uYWwgY29vcmRpbmF0ZXMgb2YgdGhlIE4gcG9pbnRzLlxuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGZpbGxSYW5kb21NYXRyaXgobkl0ZW1zLCBQU1BFQmFzZS5kaW1lbnNpb24sIGFyZWFXaWR0aCk7XG4gICAgICAgIGxldCBsYW1iZGEgPSB0aGlzLmxhbWJkYTtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0RGlzdGFuY2UodmVjdG9ycyk7XG4gICAgICAgIGZvciAobGV0IGN5Y2xlID0gMDsgY3ljbGUgPCB0aGlzLmN5Y2xlczsgKytjeWNsZSkge1xuICAgICAgICAgICAgLy8gU2VsZWN0IGEgcG9pbnQsIGksIGF0IHJhbmRvbSAocGl2b3QpLlxuICAgICAgICAgICAgY29uc3QgaSA9IHJhbmRvbUludChuSXRlbXMpO1xuICAgICAgICAgICAgY29uc3Qgcm93aSA9IGNvb3JkaW5hdGVzW2ldO1xuICAgICAgICAgICAgLy8gRm9yIGV2ZXJ5IHBvaW50IGogIT0gaSAuLi5cbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbkl0ZW1zOyArK2opIHtcbiAgICAgICAgICAgICAgICBpZiAoaSA9PSBqKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dqID0gY29vcmRpbmF0ZXNbal07XG4gICAgICAgICAgICAgICAgLy8gLi4uIHJldHJpZXZlIChvciBldmFsdWF0ZSkgaXRzIHByb3hpbWl0eSB0byBpIGluIHRoZSBpbnB1dCBzcGFjZSwgcmlqIC4uLlxuICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB0aGlzLmNhbGNEaXN0YW5jZSh2ZWN0b3JzLCBpLCBqKTtcbiAgICAgICAgICAgICAgICAvLyAuLi4gYW5kIGNvbXB1dGUgdGhlaXIgRXVjbGlkZWFuIGRpc3RhbmNlIG9uIHRoZSBELWRpbWVuc2lvbmFsIG1hcCwgZGlqLlxuICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZShyb3dpLCByb3dqKTtcbiAgICAgICAgICAgICAgICAvLyBJZiByaWogPD0gcmMsIG9yIGlmIHJpaiA+IHJjIGFuZCBkaWogPCByaWogLi4uXG4gICAgICAgICAgICAgICAgaWYgKCh0aGlzLmN1dG9mZiA9PSAwKSB8fCAociA8PSB0aGlzLmN1dG9mZikgfHwgKGQgPCByKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtdWx0aXBsaWVyID0gbGFtYmRhICogKHIgLSBkKSAvIChkICsgdGhpcy5lcHNpbG9uKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlmZklKID0gdmVjdG9yQWRkKHJvd2ksIHJvd2osIC0xKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gLi4uIHVwZGF0ZSB0aGUgY29vcmRpbmF0ZXMgeGouXG4gICAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzW2pdID0gdmVjdG9yQWRkKHJvd2osIGRpZmZJSiwgLW11bHRpcGxpZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIERlY3JlYXNlIHRoZSBsZWFybmluZyByYXRlIHtsYW1iZGF9IGJ5IGEgcHJlc2NyaWJlZCB7ZGxhbWJkYX0uXG4gICAgICAgICAgICBsYW1iZGEgLT0gdGhpcy5kbGFtYmRhO1xuICAgICAgICAgICAgaWYgKGxhbWJkYSA8PSAwLilcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29vcmRpbmF0ZXM7XG4gICAgfVxufVxuLyoqXG4gKiBJbXBsZW1lbnRzIG1vZGlmaWVkIHN0b2NoYXN0aWMgcHJveGltaXR5IGVtYmVkZGluZy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgT3JpZ2luYWxTUEVcbiAqIEBsaW5rIGRvaToxMC4xMDAyL2pjYy4xMDIzNFxuICovXG5leHBvcnQgY2xhc3MgT3JpZ2luYWxTUEUgZXh0ZW5kcyBTUEVCYXNlIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmN5Y2xlcyA9IG9wdGlvbnM/LmN5Y2xlcyA/PyAxZTM7XG4gICAgICAgIHRoaXMuc3RlcHMgPSBvcHRpb25zPy5zdGVwcyA/PyAxMDAwMDA7XG4gICAgICAgIHRoaXMucmFkaXVzUGVyY2VudCA9IG9wdGlvbnM/LnJhZGl1c1BlcmNlbnQgPz8gMS4wO1xuICAgICAgICB0aGlzLm1heERpc3RhbmNlID0gb3B0aW9ucz8ubWF4RGlzdGFuY2UgPz8gbnVsbDtcbiAgICAgICAgdGhpcy5tYXhEaXN0YW5jZVN0ZXBzID0gb3B0aW9ucz8ubWF4RGlzdGFuY2VTdGVwcyA/PyBudWxsO1xuICAgIH1cbiAgICBhc3luYyBlbWJlZCh2ZWN0b3JzKSB7XG4gICAgICAgIGNvbnN0IG5JdGVtcyA9IHZlY3RvcnMubGVuZ3RoO1xuICAgICAgICBjb25zdCBhcmVhV2lkdGggPSA0MDtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgRC1kaW1lbnNpb25hbCBjb29yZGluYXRlcyBvZiB0aGUgTiBwb2ludHMuXG4gICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gZmlsbFJhbmRvbU1hdHJpeChuSXRlbXMsIE9yaWdpbmFsU1BFLmRpbWVuc2lvbiwgYXJlYVdpZHRoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0RGlzdGFuY2UodmVjdG9ycyk7XG4gICAgICAgIGlmICh0aGlzLm1heERpc3RhbmNlU3RlcHMgPT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLm1heERpc3RhbmNlU3RlcHMgPSBuSXRlbXMgKiBNYXRoLmZsb29yKChuSXRlbXMgLSAxKSAvIDIpO1xuICAgICAgICBpZiAodGhpcy5tYXhEaXN0YW5jZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5tYXhEaXN0YW5jZSA9IC0xZTM3O1xuICAgICAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCB0aGlzLm1heERpc3RhbmNlU3RlcHM7IG4rKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGkgPSByYW5kb21JbnQobkl0ZW1zKTtcbiAgICAgICAgICAgICAgICBsZXQgaiA9IHJhbmRvbUludChuSXRlbXMpO1xuICAgICAgICAgICAgICAgIHdoaWxlIChpID09IGopXG4gICAgICAgICAgICAgICAgICAgIGogPSByYW5kb21JbnQobkl0ZW1zKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gdGhpcy5jYWxjRGlzdGFuY2UodmVjdG9ycywgaSwgaik7XG4gICAgICAgICAgICAgICAgaWYgKGQgPiB0aGlzLm1heERpc3RhbmNlKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1heERpc3RhbmNlID0gZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgbGFtYmRhID0gdGhpcy5sYW1iZGE7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9ICh0aGlzLnJhZGl1c1BlcmNlbnQgPT0gMC4wKSA/IHRoaXMubWF4RGlzdGFuY2UgOiB0aGlzLm1heERpc3RhbmNlICogdGhpcy5yYWRpdXNQZXJjZW50O1xuICAgICAgICBmb3IgKGxldCBjeWNsZSA9IDA7IGN5Y2xlIDwgdGhpcy5jeWNsZXM7ICsrY3ljbGUpIHtcbiAgICAgICAgICAgIGZvciAobGV0IHN0ZXAgPSAwOyBzdGVwIDwgdGhpcy5zdGVwczsgKytzdGVwKSB7XG4gICAgICAgICAgICAgICAgLy8gU2VsZWN0IHR3byBwb2ludHMsIGkgYW5kIGosIGF0IHJhbmRvbSwgLi4uXG4gICAgICAgICAgICAgICAgY29uc3QgaSA9IHJhbmRvbUludChuSXRlbXMpO1xuICAgICAgICAgICAgICAgIGxldCBqID0gcmFuZG9tSW50KG5JdGVtcyk7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGkgPT0gailcbiAgICAgICAgICAgICAgICAgICAgaiA9IHJhbmRvbUludChuSXRlbXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvd2kgPSBjb29yZGluYXRlc1tpXTtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dqID0gY29vcmRpbmF0ZXNbal07XG4gICAgICAgICAgICAgICAgLy8gcmV0cmlldmUgKG9yIGV2YWx1YXRlKSB0aGVpciBwcm94aW1pdHkgaW4gdGhlIGlucHV0IHNwYWNlLCByaWogYW5kIC4uLlxuICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB0aGlzLmNhbGNEaXN0YW5jZSh2ZWN0b3JzLCBpLCBqKTtcbiAgICAgICAgICAgICAgICAvLyBjb21wdXRlIHRoZWlyIEV1Y2xpZGVhbiBkaXN0YW5jZSBvbiB0aGUgRC1kaW1lbnNpb25hbCBtYXAsIGRpai5cbiAgICAgICAgICAgICAgICBjb25zdCBkID0gY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2Uocm93aSwgcm93aik7XG4gICAgICAgICAgICAgICAgaWYgKChyIDw9IHJhZGl1cykgfHwgKGQgPCByKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtdWx0aXBsaWVyID0gbGFtYmRhICogMC41ICogKHIgLSBkKSAvIChkICsgdGhpcy5lcHNpbG9uKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gLi4uIHVwZGF0ZSB0aGUgY29vcmRpbmF0ZXMgeGkgYW5kIHhqLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWZmSUogPSB2ZWN0b3JBZGQocm93aSwgcm93aiwgLTEpO1xuICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlc1tpXSA9IHZlY3RvckFkZChyb3dpLCBkaWZmSUosIG11bHRpcGxpZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlc1tqXSA9IHZlY3RvckFkZChyb3dqLCBkaWZmSUosIC1tdWx0aXBsaWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsYW1iZGEgLT0gKCh0aGlzLmxhbWJkYSAtIHRoaXMuZGxhbWJkYSkgLyAodGhpcy5jeWNsZXMgLSAxLjApKTtcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIGlmIChsYW1iZGEgPCB0aGlzLmRsYW1iZGEpXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvb3JkaW5hdGVzO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMzQmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWMzQmxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVOQkxFOUJRVThzUlVGRFRDd3dRa0ZCTUVJc1JVRkRNVUlzWjBKQlFXZENMRVZCUTJoQ0xGTkJRVk1zUjBGRFZpeE5RVUZOTEdsRVFVRnBSQ3hEUVVGRE8wRkJRM3BFTEU5QlFVOHNSVUZCUXl4VFFVRlRMRVZCUVVNc1RVRkJUU3h6UTBGQmMwTXNRMEZCUXp0QlFVVXZSQ3hQUVVGUExFVkJRVU1zY1VKQlFYRkNMRVZCUVVVc1lVRkJZU3hGUVVGRExFMUJRVTBzYlVKQlFXMUNMRU5CUVVNN1FVRkZka1U3T3pzN096dEhRVTFITzBGQlEwZ3NUVUZCWVN4UFFVRlBPMGxCWld4Q096czdPMDlCU1VjN1NVRkRTQ3haUVVGWkxFOUJRV2xDTzFGQlF6TkNMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzVDBGQlR5eEZRVUZGTEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRha01zU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4UFFVRlBMRVZCUVVVc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF6dFJRVU55UXl3MFEwRkJORU03VVVGRE5VTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhQUVVGUExFVkJRVVVzVFVGQlRTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTnVReXcwUTBGQk5FTTdVVUZETlVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVWQlFVVXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJRenRSUVVOeVF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTlCUVU4c1JVRkJSU3hQUVVGUExFbEJRVWtzU1VGQlNTeERRVUZETzFGQlEzaERMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5zUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFOUJRVThzUlVGQlJTeFBRVUZQTEVsQlFVa3NTMEZCU3l4RFFVRkRPMUZCUTNwRExIVkRRVUYxUXp0UlFVTjJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1QwRkJUeXhGUVVGRkxGRkJRVkVzU1VGQlNTd3dRa0ZCTUVJc1EwRkJRenRSUVVONFJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRWxCUVVrc1dVRkJXU3hGUVVGRkxFTkJRVU03VVVGRGJrTXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeEhRVUZITEU5QlFVOHNSVUZCUlN4dlFrRkJjVUlzUTBGQlF6dEpRVU0zUkN4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRUeXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEU5QlFXZENPMUZCUXpORExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU5zUkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFMUJRVTBzWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRU5CUVVNN1VVRkROMFVzWVVGQllTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUXpWQ0xFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUTA4c1dVRkJXU3hEUVVGRExFOUJRV2RDTEVWQlFVVXNUVUZCWXl4RlFVRkZMRTFCUVdNN1VVRkRja1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGaExFTkJRVU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRNMFFzUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGblFqdFJRVU5xUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlF6bENMRTFCUVUwc1UwRkJVeXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU55UWl3MFJFRkJORVE3VVVGRE5VUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJReXhUUVVGVExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZGTTBVc1NVRkJTU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXp0UlFVVXpRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEV0QlFVc3NRMEZCUXp0WlFVTnNRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSMnhETEUxQlFVMHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVVZxUXl4TFFVRkxMRWxCUVVrc1MwRkJTeXhIUVVGSExFTkJRVU1zUlVGQlJTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJUdFpRVU5vUkN4TFFVRkxMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJUdG5Ra0ZETlVNc05rTkJRVFpETzJkQ1FVTTNReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJRelZDTEVsQlFVa3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dG5Ra0ZETVVJc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF6dHZRa0ZCUlN4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzJkQ1FVVnlReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRelZDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZGTlVJc05rVkJRVFpGTzJkQ1FVTTNSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpORExITkZRVUZ6UlR0blFrRkRkRVVzVFVGQlRTeERRVUZETEVkQlFVY3NNRUpCUVRCQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVWcVJDeHBSRUZCYVVRN1owSkJRMnBFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSVHR2UWtGRGRrUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0dlFrRkRNVVFzZDBOQlFYZERPMjlDUVVONFF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4VFFVRlRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVONlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN2IwSkJRM0pFTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8ybENRVU4yUkR0aFFVTkdPMWxCUTBRc2FVVkJRV2xGTzFsQlEycEZMRTlCUVU4c1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzFsQlEzcENMRWxCUVVrc1QwRkJUeXhKUVVGSkxFVkJRVVU3WjBKQlEyWXNUVUZCVFR0VFFVTlVPMUZCUTBRc1QwRkJUeXhYUVVGWExFTkJRVU03U1VGRGNrSXNRMEZCUXpzN1FVRXZSMmRDTEdsQ1FVRlRMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJSSEJDTEU5QlFVODdRVUZ0U0hCQ096czdPenM3UjBGTlJ6dEJRVU5JTEUxQlFVMHNUMEZCVHl4UlFVRlRMRk5CUVZFc1QwRkJUenRKUVVOdVF6czdPenM3VDBGTFJ6dEpRVU5KTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJaMEk3VVVGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU01UWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRGNrSXNOa1JCUVRaRU8xRkJRemRFTEUxQlFVMHNWMEZCVnl4SFFVRkhMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNc1UwRkJVeXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6VkZMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZGZWtJc1RVRkJUU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUldwRExFdEJRVXNzU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RlFVRkZMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZPMWxCUTJoRUxIZERRVUYzUXp0WlFVTjRReXhOUVVGTkxFTkJRVU1zUjBGQlZ5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRjRU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJSVFZDTERaQ1FVRTJRanRaUVVNM1FpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZPMmRDUVVNdlFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRPMjlDUVVGRkxGTkJRVk03WjBKQlEzSkNMRTFCUVUwc1NVRkJTU3hIUVVGSExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkROVUlzTkVWQlFUUkZPMmRDUVVNMVJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRek5ETERCRlFVRXdSVHRuUWtGRE1VVXNUVUZCVFN4RFFVRkRMRWRCUVVjc01FSkJRVEJDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU5xUkN4cFJFRkJhVVE3WjBKQlEycEVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJUdHZRa0ZEZGtRc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenR2UWtGRGVrUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1UwRkJVeXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGVrTXNhVU5CUVdsRE8yOUNRVU5xUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dHBRa0ZEZGtRN1lVRkRSanRaUVVORUxHbEZRVUZwUlR0WlFVTnFSU3hOUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXp0WlFVTjJRaXhKUVVGSkxFMUJRVTBzU1VGQlNTeEZRVUZGTzJkQ1FVTmtMRTFCUVUwN1UwRkRWRHRSUVVORUxFOUJRVThzVjBGQlZ5eERRVUZETzBsQlEzSkNMRU5CUVVNN1EwRkRSanRCUVVWRU96czdPenM3UjBGTlJ6dEJRVU5JTEUxQlFVMHNUMEZCVHl4WFFVRlpMRk5CUVZFc1QwRkJUenRKUVZkMFF5eFpRVUZaTEU5QlFXbENPMUZCUXpOQ0xFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTm1MRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVDBGQlR5eEZRVUZGTEUxQlFVMHNTVUZCU1N4SFFVRkhMRU5CUVVNN1VVRkRja01zU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4UFFVRlBMRVZCUVVVc1MwRkJTeXhKUVVGSkxFMUJRVTBzUTBGQlF6dFJRVU4wUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExFOUJRVThzUlVGQlJTeGhRVUZoTEVsQlFVa3NSMEZCUnl4RFFVRkRPMUZCUTI1RUxFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NUMEZCVHl4RlFVRkZMRmRCUVZjc1NVRkJTU3hKUVVGSkxFTkJRVU03VVVGRGFFUXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEhRVUZITEU5QlFVOHNSVUZCUlN4blFrRkJaMElzU1VGQlNTeEpRVUZKTEVOQlFVTTdTVUZETlVRc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCWjBJN1VVRkRha01zVFVGQlRTeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVNNVFpeE5RVUZOTEZOQlFWTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRja0lzTkVSQlFUUkVPMUZCUXpWRUxFMUJRVTBzVjBGQlZ5eEhRVUZITEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVOQlFVTXNVMEZCVXl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJSUzlGTEUxQlFVMHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVVZxUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNTMEZCU3l4SlFVRkpPMWxCUTJoRExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVm9SU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEV0QlFVc3NTVUZCU1N4RlFVRkZPMWxCUXpkQ0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRla0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZET1VNc1RVRkJUU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMmRDUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRuUWtGRGRrUXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJRenR2UWtGQlJTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8yZENRVVZ5UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF6TkRMRWxCUVVrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTzI5Q1FVTjBRaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVOQlFVTXNRMEZCUXp0aFFVTjRRanRUUVVOR08xRkJSVVFzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVONlFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF6dFJRVVYwUnl4TFFVRkxMRWxCUVVrc1MwRkJTeXhIUVVGSExFTkJRVU1zUlVGQlJTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJUdFpRVU5vUkN4TFFVRkxMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJUdG5Ra0ZETlVNc05rTkJRVFpETzJkQ1FVTTNReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJRelZDTEVsQlFVa3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dG5Ra0ZETVVJc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF6dHZRa0ZCUlN4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzJkQ1FVVnlReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRelZDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZGTlVJc2VVVkJRWGxGTzJkQ1FVTjZSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpORExHdEZRVUZyUlR0blFrRkRiRVVzVFVGQlRTeERRVUZETEVkQlFVY3NNRUpCUVRCQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVWcVJDeEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZPMjlDUVVNMVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0dlFrRkRMMFFzZDBOQlFYZERPMjlDUVVONFF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4VFFVRlRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVONlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN2IwSkJRM0pFTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8ybENRVU4yUkR0aFFVTkdPMWxCUTBRc1RVRkJUU3hKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVUZETEVOQlFVTTdXVUZEYWtVc1NVRkJTU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEU5QlFVODdaMEpCUTNaQ0xFMUJRVTA3VTBGRFZEdFJRVU5FTEU5QlFVOHNWMEZCVnl4RFFVRkRPMGxCUTNKQ0xFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdUM0IwYVc5dWN5d2dRMjl2Y21ScGJtRjBaWE1zSUZabFkzUnZjbk1zSUVScGMzUmhibU5sVFdWMGNtbGpmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkwZVhCbExXUmxZMnhoY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTF4dUlDQmpZV3hqZFd4aGRHVkZkV05zYVdSbFlXNUVhWE4wWVc1alpTeGNiaUFnWm1sc2JGSmhibVJ2YlUxaGRISnBlQ3hjYmlBZ2RtVmpkRzl5UVdSa0xGeHVmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkyWldOMGIzSXRiM0JsY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTNKaGJtUnZiVWx1ZEgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmNtRnVaRzl0Snp0Y2JtbHRjRzl5ZENCN1MyNXZkMjVOWlhSeWFXTnpmU0JtY205dElDY3VMM1I1Y0dWa0xXMWxkSEpwWTNNbk8xeHVhVzF3YjNKMElIdEVhWE4wWVc1alpVMWhkSEpwZUZObGNuWnBZMlVzSUdSdFRHbHVaV0Z5U1c1a1pYaDlJR1p5YjIwZ0p5NHZaR2x6ZEdGdVkyVXRiV0YwY21sNEp6dGNibHh1THlvcVhHNGdLaUJKYlhCc1pXMWxiblJ6SUhOMGIyTm9ZWE4wYVdNZ2NISnZlR2x0YVhSNUlHVnRZbVZrWkdsdVp5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBWTJ4aGMzTWdVMUJGUW1GelpWeHVJQ29nUUd4cGJtc2daRzlwT2pFd0xqRXdNVFl2VXpFd09UTXRNekkyTXlnd015a3dNREUxTlMwMFhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QlRVRVZDWVhObElIdGNiaUFnY0hKdmRHVmpkR1ZrSUhOMFlYUnBZeUJrYVcxbGJuTnBiMjRnUFNBeU8xeHVJQ0J3Y205MFpXTjBaV1FnYzNSbGNITTZJRzUxYldKbGNqdGNiaUFnY0hKdmRHVmpkR1ZrSUdONVkyeGxjem9nYm5WdFltVnlPMXh1SUNCd2NtOTBaV04wWldRZ1kzVjBiMlptT2lCdWRXMWlaWEk3WEc0Z0lIQnliM1JsWTNSbFpDQnNZVzFpWkdFNklHNTFiV0psY2p0Y2JpQWdjSEp2ZEdWamRHVmtJR1JzWVcxaVpHRTZJRzUxYldKbGNqdGNiaUFnY0hKdmRHVmpkR1ZrSUd4aGJXSmtZVEk2SUc1MWJXSmxjanRjYmlBZ2NISnZkR1ZqZEdWa0lHUnNZVzFpWkdFeU9pQnVkVzFpWlhJN1hHNGdJSEJ5YjNSbFkzUmxaQ0JsY0hOcGJHOXVPaUJ1ZFcxaVpYSTdYRzRnSUhCeWIzUmxZM1JsWkNCa2FYTjBZVzVqWlVaMWJtTjBhVzl1T2lCRWFYTjBZVzVqWlUxbGRISnBZenRjYmlBZ2NISnZkR1ZqZEdWa0lHUnBjM1JoYm1ObFJuVnVZM1JwYjI1T1lXMWxPaUJMYm05M2JrMWxkSEpwWTNNN1hHNGdJR1JwYzNSaGJtTmxPaUJHYkc5aGRETXlRWEp5WVhrN1hHNGdJSEJ5YjNSbFkzUmxaQ0JrYlVsdVpHVjRSblZ1WTNRL09pQW9hVG9nYm5WdFltVnlMQ0JxT2lCdWRXMWlaWElwSUQwK0lHNTFiV0psY2p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxjeUJoYmlCcGJuTjBZVzVqWlNCdlppQlRVRVZDWVhObExseHVJQ0FnS2lCQWNHRnlZVzBnZTA5d2RHbHZibk45SUZ0dmNIUnBiMjV6WFNCUGNIUnBiMjV6SUhSdklIQmhjM01nZEc4Z2RHaGxJR052Ym5OMGNuVmpkRzl5TGx4dUlDQWdLaUJBYldWdFltVnliMllnVTFCRlFtRnpaVnh1SUNBZ0tpOWNiaUFnWTI5dWMzUnlkV04wYjNJb2IzQjBhVzl1Y3o4NklFOXdkR2x2Ym5NcElIdGNiaUFnSUNCMGFHbHpMbk4wWlhCeklEMGdiM0IwYVc5dWN6OHVjM1JsY0hNZ1B6OGdNRHRjYmlBZ0lDQjBhR2x6TG1ONVkyeGxjeUE5SUc5d2RHbHZibk0vTG1ONVkyeGxjeUEvUHlBeFpUWTdYRzRnSUNBZ0x5OGdVMlZzWldOMElHRWdZM1YwYjJabUlHUnBjM1JoYm1ObElIdGpkWFJ2Wm1aOUlHRnVaQ0F1TGk1Y2JpQWdJQ0IwYUdsekxtTjFkRzltWmlBOUlHOXdkR2x2Ym5NL0xtTjFkRzltWmlBL1B5QXdPMXh1SUNBZ0lDOHZJQzR1TGlCaGJpQnBibWwwYVdGc0lHeGxZWEp1YVc1bklISmhkR1VnZTJ4aGJXSmtZWDBnUGlBd1hHNGdJQ0FnZEdocGN5NXNZVzFpWkdFZ1BTQnZjSFJwYjI1elB5NXNZVzFpWkdFZ1B6OGdNaTR3TzF4dUlDQWdJSFJvYVhNdVpHeGhiV0prWVNBOUlHOXdkR2x2Ym5NL0xtUnNZVzFpWkdFZ1B6OGdNQzR3TVR0Y2JpQWdJQ0IwYUdsekxteGhiV0prWVRJZ1BTQjBhR2x6TG14aGJXSmtZU0F2SURJdU8xeHVJQ0FnSUhSb2FYTXVaR3hoYldKa1lUSWdQU0IwYUdsekxtUnNZVzFpWkdFZ0x5QXlManRjYmlBZ0lDQjBhR2x6TG1Wd2MybHNiMjRnUFNCdmNIUnBiMjV6UHk1bGNITnBiRzl1SUQ4L0lERmxMVEV3TzF4dUlDQWdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0JpY21GalpTMXpkSGxzWlZ4dUlDQWdJSFJvYVhNdVpHbHpkR0Z1WTJWR2RXNWpkR2x2YmlBOUlHOXdkR2x2Ym5NL0xtUnBjM1JoYm1ObElEOC9JR05oYkdOMWJHRjBaVVYxWTJ4cFpHVmhia1JwYzNSaGJtTmxPMXh1SUNBZ0lIUm9hWE11WkdsemRHRnVZMlVnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0NrN1hHNGdJQ0FnZEdocGN5NWthWE4wWVc1alpVWjFibU4wYVc5dVRtRnRaU0E5SUc5d2RHbHZibk0vTG1ScGMzUmhibU5sUm5WdVkzUnBiMjVPWVcxbElUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJKYm1sMGFXRnNhWHBsY3lCa2FYTjBZVzVqWlNCdFlYUnlhWGd1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1ZtVmpkRzl5YzMwZ2RtVmpkRzl5Y3lCSmJuQjFkQ0IyWldOMGIzSnpJSFJ2SUdOaGJHTjFiR0YwWlNCa2FYTjBZVzVqWlNCaVpYUjNaV1Z1TGx4dUlDQWdLaUJBYldWdFltVnliMllnVTFCRlFtRnpaVnh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUdGemVXNWpJR2x1YVhSRWFYTjBZVzVqWlNoMlpXTjBiM0p6T2lCV1pXTjBiM0p6S1NCN1hHNGdJQ0FnZEdocGN5NWtiVWx1WkdWNFJuVnVZM1FnUFNCa2JVeHBibVZoY2tsdVpHVjRLSFpsWTNSdmNuTXViR1Z1WjNSb0tUdGNiaUFnSUNCamIyNXpkQ0J0WVhSeWFYaFRaWEoyYVdObElEMGdibVYzSUVScGMzUmhibU5sVFdGMGNtbDRVMlZ5ZG1salpTaDBjblZsTENCbVlXeHpaU2s3WEc0Z0lDQWdkR2hwY3k1a2FYTjBZVzVqWlNBOUlHRjNZV2wwSUcxaGRISnBlRk5sY25acFkyVXVZMkZzWXloMlpXTjBiM0p6TENCMGFHbHpMbVJwYzNSaGJtTmxSblZ1WTNScGIyNU9ZVzFsS1R0Y2JpQWdJQ0J0WVhSeWFYaFRaWEoyYVdObExuUmxjbTFwYm1GMFpTZ3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOaGJHTjFiR0YwWlhNZ1pHbHpkR0Z1WTJVZ1ltVjBkMlZsYmlCMGFHVWdkSGR2SUhabFkzUnZjbk1nWjJsMlpXNHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3Vm1WamRHOXljMzBnZG1WamRHOXljeUJUWlhRZ2IyWWdkbVZqZEc5eWN5QjBieUJqWVd4amRXeGhkR1VnWkdsemRHRnVZMlZ6SUdKbGRIZGxaVzR1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnBibVJsZURFZ1NXNWtaWGdnYjJZZ2RHaGxJR1pwY25OMElIWmxZM1J2Y2lCdlppQjBhR1VnY0dGcGNpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdsdVpHVjRNaUJKYm1SbGVDQnZaaUIwYUdVZ2MyVmpiMjVrSUhabFkzUnZjaUJ2WmlCMGFHVWdjR0ZwY2k1Y2JpQWdJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmU0JFYVhOMFlXNWpaU0JpWlhSM1pXVnVJSFJvWlhObElIUjNieUIyWldOMGIzSnpMbHh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUdOaGJHTkVhWE4wWVc1alpTaDJaV04wYjNKek9pQldaV04wYjNKekxDQnBibVJsZURFNklHNTFiV0psY2l3Z2FXNWtaWGd5T2lCdWRXMWlaWElwT2lCdWRXMWlaWElnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1ScGMzUmhibU5sVzNSb2FYTXVaRzFKYm1SbGVFWjFibU4wSVNocGJtUmxlREVzSUdsdVpHVjRNaWxkTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFVnRZbVZrY3lCMGFHVWdkbVZqZEc5eWN5Qm5hWFpsYmlCcGJuUnZJR0VnZEhkdkxXUnBiV1Z1YzJsdmJtRnNJSE53WVdObExseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuTjlJSFpsWTNSdmNuTWdSQzFrYVcxbGJuTnBiMjVoYkNCamIyOXlaR2x1WVhSbGN5NWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1EyOXZjbVJwYm1GMFpYTjlJRk5RUlNCamIyOXlaR2x1WVhSbGN5QnBiaUJFSUhOd1lXTmxMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR0Z6ZVc1aklHVnRZbVZrS0habFkzUnZjbk02SUZabFkzUnZjbk1wT2lCUWNtOXRhWE5sUEVOdmIzSmthVzVoZEdWelBpQjdYRzRnSUNBZ1kyOXVjM1FnYmtsMFpXMXpJRDBnZG1WamRHOXljeTVzWlc1bmRHZzdYRzRnSUNBZ1kyOXVjM1FnWVhKbFlWZHBaSFJvSUQwZ05EQTdYRzRnSUNBZ0x5OGdTVzVwZEdsaGJHbDZaU0IwYUdVZ1JDMWthVzFsYm5OcGIyNWhiQ0JqYjI5eVpHbHVZWFJsY3lCdlppQjBhR1VnVGlCd2IybHVkSE11WEc0Z0lDQWdZMjl1YzNRZ1kyOXZjbVJwYm1GMFpYTWdQU0JtYVd4c1VtRnVaRzl0VFdGMGNtbDRLRzVKZEdWdGN5d2dVMUJGUW1GelpTNWthVzFsYm5OcGIyNHNJR0Z5WldGWGFXUjBhQ2s3WEc1Y2JpQWdJQ0JzWlhRZ2JHRnRZbVJoTWlBOUlIUm9hWE11YkdGdFltUmhNanRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbk4wWlhCeklEMDlQU0F3S1Z4dUlDQWdJQ0FnZEdocGN5NXpkR1Z3Y3lBOUlIWmxZM1J2Y25NdWJHVnVaM1JvSUMwZ01UdGNibHh1WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVwYm1sMFJHbHpkR0Z1WTJVb2RtVmpkRzl5Y3lrN1hHNWNiaUFnSUNCbWIzSWdLR3hsZENCamVXTnNaU0E5SURBN0lHTjVZMnhsSUR3Z2RHaHBjeTVqZVdOc1pYTTdJQ3NyWTNsamJHVXBJSHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJSE4wWlhBZ1BTQXdPeUJ6ZEdWd0lEd2dkR2hwY3k1emRHVndjenNnS3l0emRHVndLU0I3WEc0Z0lDQWdJQ0FnSUM4dklGTmxiR1ZqZENCMGQyOGdjRzlwYm5SekxDQnBJR0Z1WkNCcUxDQmhkQ0J5WVc1a2IyMHNJQzR1TGx4dUlDQWdJQ0FnSUNCamIyNXpkQ0JwSUQwZ2NtRnVaRzl0U1c1MEtHNUpkR1Z0Y3lrN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JxSUQwZ2NtRnVaRzl0U1c1MEtHNUpkR1Z0Y3lrN1hHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNocElEMDlJR29wSUdvZ1BTQnlZVzVrYjIxSmJuUW9ia2wwWlcxektUdGNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnliM2RwSUQwZ1kyOXZjbVJwYm1GMFpYTmJhVjA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEp2ZDJvZ1BTQmpiMjl5WkdsdVlYUmxjMXRxWFR0Y2JseHVJQ0FnSUNBZ0lDQXZMeUF1TGk0Z2NtVjBjbWxsZG1VZ0tHOXlJR1YyWVd4MVlYUmxLU0IwYUdWcGNpQndjbTk0YVcxcGRIa2dhVzRnZEdobElHbHVjSFYwSUhOd1lXTmxMQ0J5YVdvZ1lXNWtJQzR1TGx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5SUQwZ2RHaHBjeTVqWVd4alJHbHpkR0Z1WTJVb2RtVmpkRzl5Y3l3Z2FTd2dhaWs3WEc0Z0lDQWdJQ0FnSUM4dklDNHVMaUJqYjIxd2RYUmxJSFJvWldseUlFVjFZMnhwWkdWaGJpQmthWE4wWVc1alpTQnZiaUIwYUdVZ1JDMWthVzFsYm5OcGIyNWhiQ0J0WVhBc0lHUnBhaTVjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaQ0E5SUdOaGJHTjFiR0YwWlVWMVkyeHBaR1ZoYmtScGMzUmhibU5sS0hKdmQya3NJSEp2ZDJvcE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUVsbUlISnBhaUE4UFNCeVl5d2diM0lnYVdZZ2NtbHFJRDRnY21NZ1lXNWtJR1JwYWlBOElISnBhaUF1TGk1Y2JpQWdJQ0FnSUNBZ2FXWWdLQ2gwYUdsekxtTjFkRzltWmlBOVBTQXdLU0I4ZkNBb2NpQThQU0IwYUdsekxtTjFkRzltWmlrZ2ZId2dLR1FnUENCeUtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzExYkhScGNHeHBaWElnUFNCc1lXMWlaR0V5SUNvZ0tISWdMU0JrS1NBdklDaGtJQ3NnZEdocGN5NWxjSE5wYkc5dUtUdGNiaUFnSUNBZ0lDQWdJQ0F2THlBdUxpNGdkWEJrWVhSbElIUm9aU0JqYjI5eVpHbHVZWFJsY3lCNGFTQmhibVFnZUdvdVhHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1pHbG1aa2xLSUQwZ2RtVmpkRzl5UVdSa0tISnZkMmtzSUhKdmQyb3NJQzB4S1R0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjl5WkdsdVlYUmxjMXRwWFNBOUlIWmxZM1J2Y2tGa1pDaHliM2RwTENCa2FXWm1TVW9zSUcxMWJIUnBjR3hwWlhJcE8xeHVJQ0FnSUNBZ0lDQWdJR052YjNKa2FXNWhkR1Z6VzJwZElEMGdkbVZqZEc5eVFXUmtLSEp2ZDJvc0lHUnBabVpKU2l3Z0xXMTFiSFJwY0d4cFpYSXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0F2THlCRVpXTnlaV0Z6WlNCMGFHVWdiR1ZoY201cGJtY2djbUYwWlNCN2JHRnRZbVJoZlNCaWVTQmhJSEJ5WlhOamNtbGlaV1FnZTJSc1lXMWlaR0Y5TGx4dUlDQWdJQ0FnYkdGdFltUmhNaUF0UFNCMGFHbHpMbVJzWVcxaVpHRXlPMXh1SUNBZ0lDQWdhV1lnS0d4aGJXSmtZVElnUEQwZ01DNHBYRzRnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdZMjl2Y21ScGJtRjBaWE03WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCSmJYQnNaVzFsYm5SeklHMXZaR2xtYVdWa0lITjBiMk5vWVhOMGFXTWdjSEp2ZUdsdGFYUjVJR1Z0WW1Wa1pHbHVaeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQVkyeGhjM01nVUZOUVJVSmhjMlZjYmlBcUlFQnNhVzVySUdSdmFUb3hNQzR4TURFMkwxTXhNRGt6TFRNeU5qTW9NRE1wTURBeE5UVXRORnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVUZOUVJVSmhjMlVnWlhoMFpXNWtjeUJUVUVWQ1lYTmxJSHRjYmlBZ0x5b3FYRzRnSUNBcUlFVnRZbVZrY3lCMGFHVWdkbVZqZEc5eWN5Qm5hWFpsYmlCcGJuUnZJR0VnZEhkdkxXUnBiV1Z1YzJsdmJtRnNJSE53WVdObElIVnphVzVuSUdFZ2JXOWthV1pwWldRZ2RYQmtZWFJsSUhKMWJHVXVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3Vm1WamRHOXljMzBnZG1WamRHOXljeUJFTFdScGJXVnVjMmx2Ym1Gc0lHTnZiM0prYVc1aGRHVnpMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdERiMjl5WkdsdVlYUmxjMzBnVTFCRklHTnZiM0prYVc1aGRHVnpJR2x1SUVRZ2MzQmhZMlV1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWVhONWJtTWdaVzFpWldRb2RtVmpkRzl5Y3pvZ1ZtVmpkRzl5Y3lrNklGQnliMjFwYzJVOFEyOXZjbVJwYm1GMFpYTStJSHRjYmlBZ0lDQmpiMjV6ZENCdVNYUmxiWE1nUFNCMlpXTjBiM0p6TG14bGJtZDBhRHRjYmlBZ0lDQmpiMjV6ZENCaGNtVmhWMmxrZEdnZ1BTQTBNRHRjYmlBZ0lDQXZMeUFnU1c1cGRHbGhiR2w2WlNCMGFHVWdSQzFrYVcxbGJuTnBiMjVoYkNCamIyOXlaR2x1WVhSbGN5QnZaaUIwYUdVZ1RpQndiMmx1ZEhNdVhHNGdJQ0FnWTI5dWMzUWdZMjl2Y21ScGJtRjBaWE1nUFNCbWFXeHNVbUZ1Wkc5dFRXRjBjbWw0S0c1SmRHVnRjeXdnVUZOUVJVSmhjMlV1WkdsdFpXNXphVzl1TENCaGNtVmhWMmxrZEdncE8xeHVJQ0FnSUd4bGRDQnNZVzFpWkdFZ1BTQjBhR2x6TG14aGJXSmtZVHRjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11YVc1cGRFUnBjM1JoYm1ObEtIWmxZM1J2Y25NcE8xeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ1kzbGpiR1VnUFNBd095QmplV05zWlNBOElIUm9hWE11WTNsamJHVnpPeUFySzJONVkyeGxLU0I3WEc0Z0lDQWdJQ0F2THlCVFpXeGxZM1FnWVNCd2IybHVkQ3dnYVN3Z1lYUWdjbUZ1Wkc5dElDaHdhWFp2ZENrdVhHNGdJQ0FnSUNCamIyNXpkQ0JwT2lCdWRXMWlaWElnUFNCeVlXNWtiMjFKYm5Rb2JrbDBaVzF6S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSEp2ZDJrZ1BTQmpiMjl5WkdsdVlYUmxjMXRwWFR0Y2JseHVJQ0FnSUNBZ0x5OGdSbTl5SUdWMlpYSjVJSEJ2YVc1MElHb2dJVDBnYVNBdUxpNWNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2dia2wwWlcxek95QXJLMm9wSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2tnUFQwZ2Fpa2dZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJR052Ym5OMElISnZkMm9nUFNCamIyOXlaR2x1WVhSbGMxdHFYVHRjYmlBZ0lDQWdJQ0FnTHk4Z0xpNHVJSEpsZEhKcFpYWmxJQ2h2Y2lCbGRtRnNkV0YwWlNrZ2FYUnpJSEJ5YjNocGJXbDBlU0IwYnlCcElHbHVJSFJvWlNCcGJuQjFkQ0J6Y0dGalpTd2djbWxxSUM0dUxseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeUlEMGdkR2hwY3k1allXeGpSR2x6ZEdGdVkyVW9kbVZqZEc5eWN5d2dhU3dnYWlrN1hHNGdJQ0FnSUNBZ0lDOHZJQzR1TGlCaGJtUWdZMjl0Y0hWMFpTQjBhR1ZwY2lCRmRXTnNhV1JsWVc0Z1pHbHpkR0Z1WTJVZ2IyNGdkR2hsSUVRdFpHbHRaVzV6YVc5dVlXd2diV0Z3TENCa2FXb3VYRzRnSUNBZ0lDQWdJR052Ym5OMElHUWdQU0JqWVd4amRXeGhkR1ZGZFdOc2FXUmxZVzVFYVhOMFlXNWpaU2h5YjNkcExDQnliM2RxS1R0Y2JpQWdJQ0FnSUNBZ0x5OGdTV1lnY21scUlEdzlJSEpqTENCdmNpQnBaaUJ5YVdvZ1BpQnlZeUJoYm1RZ1pHbHFJRHdnY21scUlDNHVMbHh1SUNBZ0lDQWdJQ0JwWmlBb0tIUm9hWE11WTNWMGIyWm1JRDA5SURBcElIeDhJQ2h5SUR3OUlIUm9hWE11WTNWMGIyWm1LU0I4ZkNBb1pDQThJSElwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JYVnNkR2x3YkdsbGNpQTlJR3hoYldKa1lTQXFJQ2h5SUMwZ1pDa2dMeUFvWkNBcklIUm9hWE11WlhCemFXeHZiaWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkdsbVprbEtJRDBnZG1WamRHOXlRV1JrS0hKdmQya3NJSEp2ZDJvc0lDMHhLVHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QXVMaTRnZFhCa1lYUmxJSFJvWlNCamIyOXlaR2x1WVhSbGN5QjRhaTVjYmlBZ0lDQWdJQ0FnSUNCamIyOXlaR2x1WVhSbGMxdHFYU0E5SUhabFkzUnZja0ZrWkNoeWIzZHFMQ0JrYVdabVNVb3NJQzF0ZFd4MGFYQnNhV1Z5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0x5OGdSR1ZqY21WaGMyVWdkR2hsSUd4bFlYSnVhVzVuSUhKaGRHVWdlMnhoYldKa1lYMGdZbmtnWVNCd2NtVnpZM0pwWW1Wa0lIdGtiR0Z0WW1SaGZTNWNiaUFnSUNBZ0lHeGhiV0prWVNBdFBTQjBhR2x6TG1Sc1lXMWlaR0U3WEc0Z0lDQWdJQ0JwWmlBb2JHRnRZbVJoSUR3OUlEQXVLVnh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR052YjNKa2FXNWhkR1Z6TzF4dUlDQjlYRzU5WEc1Y2JpOHFLbHh1SUNvZ1NXMXdiR1Z0Wlc1MGN5QnRiMlJwWm1sbFpDQnpkRzlqYUdGemRHbGpJSEJ5YjNocGJXbDBlU0JsYldKbFpHUnBibWN1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FHTnNZWE56SUU5eWFXZHBibUZzVTFCRlhHNGdLaUJBYkdsdWF5QmtiMms2TVRBdU1UQXdNaTlxWTJNdU1UQXlNelJjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUU5eWFXZHBibUZzVTFCRklHVjRkR1Z1WkhNZ1UxQkZRbUZ6WlNCN1hHNGdJQzhxS2x4dUlDQWdLaUJGYldKbFpITWdkR2hsSUhabFkzUnZjbk1nWjJsMlpXNGdhVzUwYnlCaElIUjNieTFrYVcxbGJuTnBiMjVoYkNCemNHRmpaU0IxYzJsdVp5QmhJRzF2WkdsbWFXVmtJSFZ3WkdGMFpTQnlkV3hsTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y25OOUlIWmxZM1J2Y25NZ1JDMWthVzFsYm5OcGIyNWhiQ0JqYjI5eVpHbHVZWFJsY3k1Y2JpQWdJQ29nUUhKbGRIVnliaUI3UTI5dmNtUnBibUYwWlhOOUlGTlFSU0JqYjI5eVpHbHVZWFJsY3lCcGJpQkVJSE53WVdObExseHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJSEpoWkdsMWMxQmxjbU5sYm5RNklHNTFiV0psY2p0Y2JpQWdjSEp2ZEdWamRHVmtJRzFoZUVScGMzUmhibU5sT2lCdWRXMWlaWEk3WEc0Z0lIQnliM1JsWTNSbFpDQnRZWGhFYVhOMFlXNWpaVk4wWlhCek9pQnVkVzFpWlhJN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb2IzQjBhVzl1Y3o4NklFOXdkR2x2Ym5NcElIdGNiaUFnSUNCemRYQmxjaWh2Y0hScGIyNXpLVHRjYmlBZ0lDQjBhR2x6TG1ONVkyeGxjeUE5SUc5d2RHbHZibk0vTG1ONVkyeGxjeUEvUHlBeFpUTTdYRzRnSUNBZ2RHaHBjeTV6ZEdWd2N5QTlJRzl3ZEdsdmJuTS9Mbk4wWlhCeklEOC9JREV3TURBd01EdGNiaUFnSUNCMGFHbHpMbkpoWkdsMWMxQmxjbU5sYm5RZ1BTQnZjSFJwYjI1elB5NXlZV1JwZFhOUVpYSmpaVzUwSUQ4L0lERXVNRHRjYmlBZ0lDQjBhR2x6TG0xaGVFUnBjM1JoYm1ObElEMGdiM0IwYVc5dWN6OHViV0Y0UkdsemRHRnVZMlVnUHo4Z2JuVnNiRHRjYmlBZ0lDQjBhR2x6TG0xaGVFUnBjM1JoYm1ObFUzUmxjSE1nUFNCdmNIUnBiMjV6UHk1dFlYaEVhWE4wWVc1alpWTjBaWEJ6SUQ4L0lHNTFiR3c3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWVhONWJtTWdaVzFpWldRb2RtVmpkRzl5Y3pvZ1ZtVmpkRzl5Y3lrNklGQnliMjFwYzJVOFEyOXZjbVJwYm1GMFpYTStJSHRjYmlBZ0lDQmpiMjV6ZENCdVNYUmxiWE1nUFNCMlpXTjBiM0p6TG14bGJtZDBhRHRjYmlBZ0lDQmpiMjV6ZENCaGNtVmhWMmxrZEdnZ1BTQTBNRHRjYmlBZ0lDQXZMeUJKYm1sMGFXRnNhWHBsSUhSb1pTQkVMV1JwYldWdWMybHZibUZzSUdOdmIzSmthVzVoZEdWeklHOW1JSFJvWlNCT0lIQnZhVzUwY3k1Y2JpQWdJQ0JqYjI1emRDQmpiMjl5WkdsdVlYUmxjeUE5SUdacGJHeFNZVzVrYjIxTllYUnlhWGdvYmtsMFpXMXpMQ0JQY21sbmFXNWhiRk5RUlM1a2FXMWxibk5wYjI0c0lHRnlaV0ZYYVdSMGFDazdYRzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbWx1YVhSRWFYTjBZVzVqWlNoMlpXTjBiM0p6S1R0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TG0xaGVFUnBjM1JoYm1ObFUzUmxjSE1nUFQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0IwYUdsekxtMWhlRVJwYzNSaGJtTmxVM1JsY0hNZ1BTQnVTWFJsYlhNZ0tpQk5ZWFJvTG1ac2IyOXlLQ2h1U1hSbGJYTWdMU0F4S1NBdklESXBPMXh1WEc0Z0lDQWdhV1lnS0hSb2FYTXViV0Y0UkdsemRHRnVZMlVnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhSb2FYTXViV0Y0UkdsemRHRnVZMlVnUFNBdE1XVXpOenRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJRzRnUFNBd095QnVJRHdnZEdocGN5NXRZWGhFYVhOMFlXNWpaVk4wWlhCek95QnVLeXNwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVNBOUlISmhibVJ2YlVsdWRDaHVTWFJsYlhNcE95QnNaWFFnYWlBOUlISmhibVJ2YlVsdWRDaHVTWFJsYlhNcE8xeHVJQ0FnSUNBZ0lDQjNhR2xzWlNBb2FTQTlQU0JxS1NCcUlEMGdjbUZ1Wkc5dFNXNTBLRzVKZEdWdGN5azdYRzVjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaQ0E5SUhSb2FYTXVZMkZzWTBScGMzUmhibU5sS0habFkzUnZjbk1zSUdrc0lHb3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pDQStJSFJvYVhNdWJXRjRSR2x6ZEdGdVkyVXBYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXRZWGhFYVhOMFlXNWpaU0E5SUdRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYkdWMElHeGhiV0prWVNBOUlIUm9hWE11YkdGdFltUmhPMXh1SUNBZ0lHTnZibk4wSUhKaFpHbDFjeUE5SUNoMGFHbHpMbkpoWkdsMWMxQmxjbU5sYm5RZ1BUMGdNQzR3S1NBL0lIUm9hWE11YldGNFJHbHpkR0Z1WTJVZ09pQjBhR2x6TG0xaGVFUnBjM1JoYm1ObElDb2dkR2hwY3k1eVlXUnBkWE5RWlhKalpXNTBPMXh1WEc0Z0lDQWdabTl5SUNoc1pYUWdZM2xqYkdVZ1BTQXdPeUJqZVdOc1pTQThJSFJvYVhNdVkzbGpiR1Z6T3lBcksyTjVZMnhsS1NCN1hHNGdJQ0FnSUNCbWIzSWdLR3hsZENCemRHVndJRDBnTURzZ2MzUmxjQ0E4SUhSb2FYTXVjM1JsY0hNN0lDc3JjM1JsY0NrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJUWld4bFkzUWdkSGR2SUhCdmFXNTBjeXdnYVNCaGJtUWdhaXdnWVhRZ2NtRnVaRzl0TENBdUxpNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FTQTlJSEpoYm1SdmJVbHVkQ2h1U1hSbGJYTXBPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FpQTlJSEpoYm1SdmJVbHVkQ2h1U1hSbGJYTXBPMXh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9hU0E5UFNCcUtTQnFJRDBnY21GdVpHOXRTVzUwS0c1SmRHVnRjeWs3WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY205M2FTQTlJR052YjNKa2FXNWhkR1Z6VzJsZE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeWIzZHFJRDBnWTI5dmNtUnBibUYwWlhOYmFsMDdYRzVjYmlBZ0lDQWdJQ0FnTHk4Z2NtVjBjbWxsZG1VZ0tHOXlJR1YyWVd4MVlYUmxLU0IwYUdWcGNpQndjbTk0YVcxcGRIa2dhVzRnZEdobElHbHVjSFYwSUhOd1lXTmxMQ0J5YVdvZ1lXNWtJQzR1TGx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5SUQwZ2RHaHBjeTVqWVd4alJHbHpkR0Z1WTJVb2RtVmpkRzl5Y3l3Z2FTd2dhaWs3WEc0Z0lDQWdJQ0FnSUM4dklHTnZiWEIxZEdVZ2RHaGxhWElnUlhWamJHbGtaV0Z1SUdScGMzUmhibU5sSUc5dUlIUm9aU0JFTFdScGJXVnVjMmx2Ym1Gc0lHMWhjQ3dnWkdscUxseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa0lEMGdZMkZzWTNWc1lYUmxSWFZqYkdsa1pXRnVSR2x6ZEdGdVkyVW9jbTkzYVN3Z2NtOTNhaWs3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLQ2h5SUR3OUlISmhaR2wxY3lrZ2ZId2dLR1FnUENCeUtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzExYkhScGNHeHBaWElnUFNCc1lXMWlaR0VnS2lBd0xqVWdLaUFvY2lBdElHUXBJQzhnS0dRZ0t5QjBhR2x6TG1Wd2MybHNiMjRwTzF4dUlDQWdJQ0FnSUNBZ0lDOHZJQzR1TGlCMWNHUmhkR1VnZEdobElHTnZiM0prYVc1aGRHVnpJSGhwSUdGdVpDQjRhaTVjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrYVdabVNVb2dQU0IyWldOMGIzSkJaR1FvY205M2FTd2djbTkzYWl3Z0xURXBPMXh1SUNBZ0lDQWdJQ0FnSUdOdmIzSmthVzVoZEdWelcybGRJRDBnZG1WamRHOXlRV1JrS0hKdmQya3NJR1JwWm1aSlNpd2diWFZzZEdsd2JHbGxjaWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXZjbVJwYm1GMFpYTmJhbDBnUFNCMlpXTjBiM0pCWkdRb2NtOTNhaXdnWkdsbVprbEtMQ0F0YlhWc2RHbHdiR2xsY2lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHeGhiV0prWVNBdFBTQW9LSFJvYVhNdWJHRnRZbVJoSUMwZ2RHaHBjeTVrYkdGdFltUmhLU0F2SUNoMGFHbHpMbU41WTJ4bGN5QXRJREV1TUNrcE95QTdYRzRnSUNBZ0lDQnBaaUFvYkdGdFltUmhJRHdnZEdocGN5NWtiR0Z0WW1SaEtWeHVJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHTnZiM0prYVc1aGRHVnpPMXh1SUNCOVhHNTlYRzRpWFgwPSIsImV4cG9ydCB2YXIgU3RyaW5nTWV0cmljc05hbWVzO1xuKGZ1bmN0aW9uIChTdHJpbmdNZXRyaWNzTmFtZXMpIHtcbiAgICBTdHJpbmdNZXRyaWNzTmFtZXNbXCJMZXZlbnNodGVpblwiXSA9IFwiTGV2ZW5zaHRlaW5cIjtcbiAgICBTdHJpbmdNZXRyaWNzTmFtZXNbXCJKYXJvV2lua2xlclwiXSA9IFwiSmFyby1XaW5rbGVyXCI7XG4gICAgU3RyaW5nTWV0cmljc05hbWVzW1wiTWFuaGF0dGFuXCJdID0gXCJNYW5oYXR0YW5cIjtcbn0pKFN0cmluZ01ldHJpY3NOYW1lcyB8fCAoU3RyaW5nTWV0cmljc05hbWVzID0ge30pKTtcbmV4cG9ydCB2YXIgVmVjdG9yTWV0cmljc05hbWVzO1xuKGZ1bmN0aW9uIChWZWN0b3JNZXRyaWNzTmFtZXMpIHtcbiAgICBWZWN0b3JNZXRyaWNzTmFtZXNbXCJFdWNsaWRlYW5cIl0gPSBcIkV1Y2xpZGVhblwiO1xufSkoVmVjdG9yTWV0cmljc05hbWVzIHx8IChWZWN0b3JNZXRyaWNzTmFtZXMgPSB7fSkpO1xuZXhwb3J0IHZhciBCaXRBcnJheU1ldHJpY3NOYW1lcztcbihmdW5jdGlvbiAoQml0QXJyYXlNZXRyaWNzTmFtZXMpIHtcbiAgICBCaXRBcnJheU1ldHJpY3NOYW1lc1tcIlRhbmltb3RvXCJdID0gXCJUYW5pbW90b1wiO1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzW1wiRGljZVwiXSA9IFwiRGljZVwiO1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzW1wiQXN5bW1ldHJpY1wiXSA9IFwiQXN5bW1ldHJpY1wiO1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzW1wiQnJhdW5CbGFucXVldFwiXSA9IFwiQnJhdW4tQmxhbnF1ZXRcIjtcbiAgICBCaXRBcnJheU1ldHJpY3NOYW1lc1tcIkNvc2luZVwiXSA9IFwiQ29zaW5lXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJLdWxjenluc2tpXCJdID0gXCJLdWxjenluc2tpXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJNY0Nvbm5hdWdoZXlcIl0gPSBcIk1jLUNvbm5hdWdoZXlcIjtcbiAgICBCaXRBcnJheU1ldHJpY3NOYW1lc1tcIlJvZ290R29sZGJlcmdcIl0gPSBcIlJvZ290LUdvbGRiZXJnXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJSdXNzZWxcIl0gPSBcIlJ1c3NlbFwiO1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzW1wiU29rYWxcIl0gPSBcIlNva2FsXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJIYW1taW5nXCJdID0gXCJIYW1taW5nXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJFdWNsaWRlYW5cIl0gPSBcIkV1Y2xpZGVhblwiO1xufSkoQml0QXJyYXlNZXRyaWNzTmFtZXMgfHwgKEJpdEFycmF5TWV0cmljc05hbWVzID0ge30pKTtcbmV4cG9ydCB2YXIgSW50QXJyYXlNZXRyaWNzTmFtZXM7XG4oZnVuY3Rpb24gKEludEFycmF5TWV0cmljc05hbWVzKSB7XG4gICAgSW50QXJyYXlNZXRyaWNzTmFtZXNbXCJUYW5pbW90b0ludEFycmF5XCJdID0gXCJUYW5pbW90b0ludEFycmF5XCI7XG59KShJbnRBcnJheU1ldHJpY3NOYW1lcyB8fCAoSW50QXJyYXlNZXRyaWNzTmFtZXMgPSB7fSkpO1xuZXhwb3J0IHZhciBEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cztcbihmdW5jdGlvbiAoRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMpIHtcbiAgICBEaXN0YW5jZU1ldHJpY3NTdWJqZWN0c1tcIlZlY3RvclwiXSA9IFwiVmVjdG9yXCI7XG4gICAgRGlzdGFuY2VNZXRyaWNzU3ViamVjdHNbXCJTdHJpbmdcIl0gPSBcIlN0cmluZ1wiO1xuICAgIERpc3RhbmNlTWV0cmljc1N1YmplY3RzW1wiQml0QXJyYXlcIl0gPSBcIkJpdEFycmF5XCI7XG4gICAgRGlzdGFuY2VNZXRyaWNzU3ViamVjdHNbXCJNYWNyb01vbGVjdWxlXCJdID0gXCJNYWNyb01vbGVjdWxlXCI7XG4gICAgRGlzdGFuY2VNZXRyaWNzU3ViamVjdHNbXCJOdW1iZXJcIl0gPSBcIk51bWJlclwiO1xuICAgIERpc3RhbmNlTWV0cmljc1N1YmplY3RzW1wiSW50QXJyYXlcIl0gPSBcIkludEFycmF5XCI7XG59KShEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cyB8fCAoRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMgPSB7fSkpO1xuZXhwb3J0IHZhciBOdW1iZXJNZXRyaWNzTmFtZXM7XG4oZnVuY3Rpb24gKE51bWJlck1ldHJpY3NOYW1lcykge1xuICAgIE51bWJlck1ldHJpY3NOYW1lc1tcIk51bWVyaWNEaXN0YW5jZVwiXSA9IFwiTnVtZXJpY0Rpc3RhbmNlXCI7XG59KShOdW1iZXJNZXRyaWNzTmFtZXMgfHwgKE51bWJlck1ldHJpY3NOYW1lcyA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMjl1YzNSekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpWTI5dWMzUnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFMUJRVTBzUTBGQlRpeEpRVUZaTEd0Q1FVbFVPMEZCU2tnc1YwRkJXU3hyUWtGQmEwSTdTVUZETVVJc2FVUkJRVEpDTEVOQlFVRTdTVUZETTBJc2EwUkJRVFJDTEVOQlFVRTdTVUZETlVJc05rTkJRWFZDTEVOQlFVRTdRVUZEZWtJc1EwRkJReXhGUVVwVExHdENRVUZyUWl4TFFVRnNRaXhyUWtGQmEwSXNVVUZKTTBJN1FVRkZTQ3hOUVVGTkxFTkJRVTRzU1VGQldTeHJRa0ZGVkR0QlFVWklMRmRCUVZrc2EwSkJRV3RDTzBsQlF6RkNMRFpEUVVGMVFpeERRVUZCTzBGQlEzcENMRU5CUVVNc1JVRkdVeXhyUWtGQmEwSXNTMEZCYkVJc2EwSkJRV3RDTEZGQlJUTkNPMEZCUlVnc1RVRkJUU3hEUVVGT0xFbEJRVmtzYjBKQllWUTdRVUZpU0N4WFFVRlpMRzlDUVVGdlFqdEpRVU0xUWl3MlEwRkJjVUlzUTBGQlFUdEpRVU55UWl4eFEwRkJZU3hEUVVGQk8wbEJRMklzYVVSQlFYbENMRU5CUVVFN1NVRkRla0lzZDBSQlFXZERMRU5CUVVFN1NVRkRhRU1zZVVOQlFXbENMRU5CUVVFN1NVRkRha0lzYVVSQlFYbENMRU5CUVVFN1NVRkRla0lzYzBSQlFUaENMRU5CUVVFN1NVRkRPVUlzZDBSQlFXZERMRU5CUVVFN1NVRkRhRU1zZVVOQlFXbENMRU5CUVVFN1NVRkRha0lzZFVOQlFXVXNRMEZCUVR0SlFVTm1MREpEUVVGdFFpeERRVUZCTzBsQlEyNUNMQ3REUVVGMVFpeERRVUZCTzBGQlEzcENMRU5CUVVNc1JVRmlVeXh2UWtGQmIwSXNTMEZCY0VJc2IwSkJRVzlDTEZGQllUZENPMEZCUlVnc1RVRkJUU3hEUVVGT0xFbEJRVmtzYjBKQlJWZzdRVUZHUkN4WFFVRlpMRzlDUVVGdlFqdEpRVU01UWl3MlJFRkJjVU1zUTBGQlFUdEJRVU4yUXl4RFFVRkRMRVZCUmxjc2IwSkJRVzlDTEV0QlFYQkNMRzlDUVVGdlFpeFJRVVV2UWp0QlFVVkVMRTFCUVUwc1EwRkJUaXhKUVVGWkxIVkNRVTlVTzBGQlVFZ3NWMEZCV1N4MVFrRkJkVUk3U1VGREwwSXNORU5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNORU5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNaMFJCUVhGQ0xFTkJRVUU3U1VGRGNrSXNNRVJCUVN0Q0xFTkJRVUU3U1VGREwwSXNORU5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNaMFJCUVhGQ0xFTkJRVUU3UVVGRGRrSXNRMEZCUXl4RlFWQlRMSFZDUVVGMVFpeExRVUYyUWl4MVFrRkJkVUlzVVVGUGFFTTdRVUZGU0N4TlFVRk5MRU5CUVU0c1NVRkJXU3hyUWtGRldEdEJRVVpFTEZkQlFWa3NhMEpCUVd0Q08wbEJRelZDTEhsRVFVRnRReXhEUVVGQk8wRkJRM0pETEVOQlFVTXNSVUZHVnl4clFrRkJhMElzUzBGQmJFSXNhMEpCUVd0Q0xGRkJSVGRDSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaVpYaHdiM0owSUdWdWRXMGdVM1J5YVc1blRXVjBjbWxqYzA1aGJXVnpJSHRjYmlBZ0lDQk1aWFpsYm5Ob2RHVnBiaUE5SUNkTVpYWmxibk5vZEdWcGJpY3NYRzRnSUNBZ1NtRnliMWRwYm10c1pYSWdQU0FuU21GeWJ5MVhhVzVyYkdWeUp5eGNiaUFnSUNCTllXNW9ZWFIwWVc0Z1BTQW5UV0Z1YUdGMGRHRnVKeXhjYmlBZ2ZWeHVYRzVsZUhCdmNuUWdaVzUxYlNCV1pXTjBiM0pOWlhSeWFXTnpUbUZ0WlhNZ2UxeHVJQ0FnSUVWMVkyeHBaR1ZoYmlBOUlDZEZkV05zYVdSbFlXNG5MRnh1SUNCOVhHNWNibVY0Y0c5eWRDQmxiblZ0SUVKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWeklIdGNiaUFnSUNCVVlXNXBiVzkwYnlBOUlDZFVZVzVwYlc5MGJ5Y3NYRzRnSUNBZ1JHbGpaU0E5SUNkRWFXTmxKeXhjYmlBZ0lDQkJjM2x0YldWMGNtbGpJRDBnSjBGemVXMXRaWFJ5YVdNbkxGeHVJQ0FnSUVKeVlYVnVRbXhoYm5GMVpYUWdQU0FuUW5KaGRXNHRRbXhoYm5GMVpYUW5MRnh1SUNBZ0lFTnZjMmx1WlNBOUlDZERiM05wYm1VbkxGeHVJQ0FnSUV0MWJHTjZlVzV6YTJrZ1BTQW5TM1ZzWTNwNWJuTnJhU2NzWEc0Z0lDQWdUV05EYjI1dVlYVm5hR1Y1SUQwZ0owMWpMVU52Ym01aGRXZG9aWGtuTEZ4dUlDQWdJRkp2WjI5MFIyOXNaR0psY21jZ1BTQW5VbTluYjNRdFIyOXNaR0psY21jbkxGeHVJQ0FnSUZKMWMzTmxiQ0E5SUNkU2RYTnpaV3duTEZ4dUlDQWdJRk52YTJGc0lEMGdKMU52YTJGc0p5eGNiaUFnSUNCSVlXMXRhVzVuSUQwZ0owaGhiVzFwYm1jbkxGeHVJQ0FnSUVWMVkyeHBaR1ZoYmlBOUlDZEZkV05zYVdSbFlXNG5MRnh1SUNCOVhHNWNibVY0Y0c5eWRDQmxiblZ0SUVsdWRFRnljbUY1VFdWMGNtbGpjMDVoYldWeklIdGNiaUFnVkdGdWFXMXZkRzlKYm5SQmNuSmhlU0E5SUNkVVlXNXBiVzkwYjBsdWRFRnljbUY1Snl4Y2JuMWNibHh1Wlhod2IzSjBJR1Z1ZFcwZ1JHbHpkR0Z1WTJWTlpYUnlhV056VTNWaWFtVmpkSE1nZTF4dUlDQWdJRlpsWTNSdmNpQTlJQ2RXWldOMGIzSW5MRnh1SUNBZ0lGTjBjbWx1WnlBOUlDZFRkSEpwYm1jbkxGeHVJQ0FnSUVKcGRFRnljbUY1SUQwZ0owSnBkRUZ5Y21GNUp5eGNiaUFnSUNCTllXTnliMDF2YkdWamRXeGxJRDBnSjAxaFkzSnZUVzlzWldOMWJHVW5MRnh1SUNBZ0lFNTFiV0psY2lBOUlDZE9kVzFpWlhJbkxGeHVJQ0FnSUVsdWRFRnljbUY1SUQwZ0owbHVkRUZ5Y21GNUp5eGNiaUFnZlZ4dVhHNWxlSEJ2Y25RZ1pXNTFiU0JPZFcxaVpYSk5aWFJ5YVdOelRtRnRaWE1nZTF4dUlDQk9kVzFsY21salJHbHpkR0Z1WTJVZ1BTQW5UblZ0WlhKcFkwUnBjM1JoYm1ObEp5eGNibjFjYmx4dUlsMTkiLCJpbXBvcnQgQml0QXJyYXkgZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvYml0LWFycmF5JztcbmltcG9ydCB7IEJpdEFycmF5TWV0cmljc05hbWVzIH0gZnJvbSAnLi90eXBlZC1tZXRyaWNzL2NvbnN0cyc7XG5pbXBvcnQgeyBNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMgfSBmcm9tICcuL21hY3JvbW9sZWN1bGUtZGlzdGFuY2UtZnVuY3Rpb25zJztcbmV4cG9ydCBjb25zdCBzaW1pbGFyaXR5TWV0cmljID0ge1xuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b106IHRhbmltb3RvU2ltaWxhcml0eSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuRGljZV06IGRpY2VTaW1pbGFyaXR5LFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Bc3ltbWV0cmljXTogYXN5bW1ldHJpY1NpbWlsYXJpdHksXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkJyYXVuQmxhbnF1ZXRdOiBicmF1bkJsYW5xdWV0U2ltaWxhcml0eSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQ29zaW5lXTogY29zaW5lU2ltaWxhcml0eSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuS3VsY3p5bnNraV06IGt1bGN6eW5za2lTaW1pbGFyaXR5LFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5NY0Nvbm5hdWdoZXldOiBtY0Nvbm5hdWdoZXlTaW1pbGFyaXR5LFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Sb2dvdEdvbGRiZXJnXTogcm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHksXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlJ1c3NlbF06IHJ1c3NlbFNpbWlsYXJpdHksXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlNva2FsXTogc29rYWxTaW1pbGFyaXR5LFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5IYW1taW5nXTogaGFtbWluZ1NpbWlsYXJpdHksXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkV1Y2xpZGVhbl06IGV1Y2xpZGVhblNpbWlsYXJpdHksXG59O1xuZXhwb3J0IGNvbnN0IGRpc3RhbmNlTWV0cmljcyA9IHtcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuVGFuaW1vdG9dOiB0YW5pbW90b0Rpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5EaWNlXTogZGljZURpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Bc3ltbWV0cmljXTogYXN5bW1ldHJpY0Rpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5CcmF1bkJsYW5xdWV0XTogYnJhdW5CbGFucXVldERpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Db3NpbmVdOiBjb3NpbmVEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuS3VsY3p5bnNraV06IGt1bGN6eW5za2lEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuTWNDb25uYXVnaGV5XTogbWNDb25uYXVnaGV5RGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlJvZ290R29sZGJlcmddOiByb2dvdEdvbGRiZXJnRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlJ1c3NlbF06IHJ1c3NlbERpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Tb2thbF06IHNva2FsRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkhhbW1pbmddOiBoYW1taW5nRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkV1Y2xpZGVhbl06IGV1Y2xpZGVhbkRpc3RhbmNlLFxufTtcbmV4cG9ydCBjb25zdCBDSEVNX1NJTUlMQVJJVFlfTUVUUklDUyA9IFtcbiAgICBCaXRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90byxcbiAgICBCaXRBcnJheU1ldHJpY3NOYW1lcy5EaWNlLFxuICAgIEJpdEFycmF5TWV0cmljc05hbWVzLkNvc2luZVxuXTtcbmV4cG9ydCBjb25zdCBTRVFfU1BBQ0VfU0lNSUxBUklUWV9NRVRSSUNTID0gW1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzLlRhbmltb3RvLFxuICAgIEJpdEFycmF5TWV0cmljc05hbWVzLkFzeW1tZXRyaWMsXG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXMuQ29zaW5lLFxuICAgIEJpdEFycmF5TWV0cmljc05hbWVzLlNva2FsXG5dO1xuZXhwb3J0IGNvbnN0IE1BQ1JPTU9MRUNVTEVfU0lNSUxBUklUWV9NRVRSSUNTID0gW1xuICAgIE1tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5IQU1NSU5HLFxuICAgIE1tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5MRVZFTlNIVEVJTixcbiAgICBNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMuTU9OT01FUl9DSEVNSUNBTF9ESVNUQU5DRVxuXTtcbmV4cG9ydCBmdW5jdGlvbiB0YW5pbW90b1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAxLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyAodG90YWwgLSBjb21tb24pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRhbmltb3RvRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHRhbmltb3RvU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdGFuaW1vdG9EaXN0YW5jZUludEFycmF5KHgsIHkpIHtcbiAgICBjb25zdCB4YiA9IG5ldyBCaXRBcnJheSh4LCB4Lmxlbmd0aCAqIDMyKTtcbiAgICBjb25zdCB5YiA9IG5ldyBCaXRBcnJheSh5LCB5Lmxlbmd0aCAqIDMyKTtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eSh0YW5pbW90b1NpbWlsYXJpdHkoeGIsIHliKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZGljZVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAyICogY29tbW9uIC8gdG90YWw7XG59XG5leHBvcnQgZnVuY3Rpb24gZGljZURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShkaWNlU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gY29zaW5lU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWwgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIE1hdGguc3FydCh0b3RhbCk7XG59XG5leHBvcnQgZnVuY3Rpb24gY29zaW5lRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGNvc2luZVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGV1Y2xpZGVhblNpbWlsYXJpdHkoeCwgeSkge1xuICAgIHJldHVybiBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGV1Y2xpZGVhbkRpc3RhbmNlKHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldWNsaWRlYW5EaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIE1hdGguc3FydCh4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKSAtIDIgKiB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbW1pbmdTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShoYW1taW5nRGlzdGFuY2UoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbW1pbmdEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpIC0gMiAqIHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzb2thbFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyAoMiAqIHRvdGFsIC0gMyAqIGNvbW1vbik7XG59XG5leHBvcnQgZnVuY3Rpb24gc29rYWxEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoc29rYWxTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBrdWxjenluc2tpU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBjb25zdCB0b3RhbFByb2QgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWxQcm9kID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAoY29tbW9uICogdG90YWwpIC8gKDIgKiB0b3RhbFByb2QpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGt1bGN6eW5za2lEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoa3VsY3p5bnNraVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1jQ29ubmF1Z2hleVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgdG90YWxQcm9kID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsUHJvZCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gKGNvbW1vbiAqIHRvdGFsIC0gdG90YWxQcm9kKSAvIHRvdGFsUHJvZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkobWNDb25uYXVnaGV5U2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gYXN5bW1ldHJpY1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHgudHJ1ZUNvdW50KCksIHkudHJ1ZUNvdW50KCkpO1xuICAgIGlmIChtaW4gPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIG1pbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhc3ltbWV0cmljRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGFzeW1tZXRyaWNTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBicmF1bkJsYW5xdWV0U2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoeC50cnVlQ291bnQoKSwgeS50cnVlQ291bnQoKSk7XG4gICAgaWYgKG1heCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gbWF4O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJyYXVuQmxhbnF1ZXREaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoYnJhdW5CbGFucXVldFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJ1c3NlbFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGlmICh4Lmxlbmd0aCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8geC5sZW5ndGg7XG59XG5leHBvcnQgZnVuY3Rpb24gcnVzc2VsRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHJ1c3NlbFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvZ290R29sZGJlcmdTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgY29uc3QgdG90YWwgPSB4LmNvdW50Qml0cyh0cnVlKSArIHkuY291bnRCaXRzKHRydWUpO1xuICAgIGNvbnN0IGxlbiA9IHgubGVuZ3RoO1xuICAgIGNvbnN0IGRpZmYgPSBsZW4gLSB0b3RhbCArIGNvbW1vbjtcbiAgICBpZiAoKGNvbW1vbiA9PSBsZW4pIHx8IChkaWZmID09IGxlbikpXG4gICAgICAgIHJldHVybiAxLjA7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gY29tbW9uIC8gdG90YWwgKyBkaWZmIC8gKDIgKiBsZW4gLSB0b3RhbCk7XG59XG5leHBvcnQgZnVuY3Rpb24gcm9nb3RHb2xkYmVyZ0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShyb2dvdEdvbGRiZXJnU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShkaXN0YW5jZSkge1xuICAgIHJldHVybiAxIC8gKDEgKyBkaXN0YW5jZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShzaW1pbGFyaXR5KSB7XG4gICAgcmV0dXJuIHNpbWlsYXJpdHkgPT09IDAgPyAzLjQwMjgyM0UrMzggOiAoMSAvIHNpbWlsYXJpdHkpIC0gMTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBudW1lcmljRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBNYXRoLmFicyh4IC0geSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laR2x6ZEdGdVkyVXRiV1YwY21samN5MXRaWFJvYjJSekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpWkdsemRHRnVZMlV0YldWMGNtbGpjeTF0WlhSb2IyUnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzVVVGQlVTeE5RVUZOTEhsRFFVRjVReXhEUVVGRE8wRkJReTlFTEU5QlFVOHNSVUZCUXl4dlFrRkJiMElzUlVGQmRVSXNUVUZCVFN4M1FrRkJkMElzUTBGQlF6dEJRVU5zUml4UFFVRlBMRVZCUVVVc2QwSkJRWGRDTEVWQlFVVXNUVUZCVFN4dlEwRkJiME1zUTBGQlF6dEJRVVU1UlN4TlFVRk5MRU5CUVVNc1RVRkJUU3huUWtGQlowSXNSMEZCTmtRN1NVRkRlRVlzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeHJRa0ZCYTBJN1NVRkRia1FzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeGpRVUZqTzBsQlF6TkRMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc2IwSkJRVzlDTzBsQlEzWkVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRVZCUVVVc2RVSkJRWFZDTzBsQlF6ZEVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1owSkJRV2RDTzBsQlF5OURMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc2IwSkJRVzlDTzBsQlEzWkVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVc2MwSkJRWE5DTzBsQlF6TkVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRVZCUVVVc2RVSkJRWFZDTzBsQlF6ZEVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1owSkJRV2RDTzBsQlF5OURMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1pVRkJaVHRKUVVNM1F5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEdsQ1FVRnBRanRKUVVOcVJDeERRVUZETEc5Q1FVRnZRaXhEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTEcxQ1FVRnRRanREUVVOMFJDeERRVUZETzBGQlJVWXNUVUZCVFN4RFFVRkRMRTFCUVUwc1pVRkJaU3hIUVVFMlJEdEpRVU4yUml4RFFVRkRMRzlDUVVGdlFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMR2RDUVVGblFqdEpRVU5xUkN4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRmxCUVZrN1NVRkRla01zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJTeHJRa0ZCYTBJN1NVRkRja1FzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhoUVVGaExFTkJRVU1zUlVGQlJTeHhRa0ZCY1VJN1NVRkRNMFFzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeGpRVUZqTzBsQlF6ZERMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc2EwSkJRV3RDTzBsQlEzSkVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVc2IwSkJRVzlDTzBsQlEzcEVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRVZCUVVVc2NVSkJRWEZDTzBsQlF6TkVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1kwRkJZenRKUVVNM1F5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEdGQlFXRTdTVUZETTBNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hsUVVGbE8wbEJReTlETEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNhVUpCUVdsQ08wTkJRM0JFTEVOQlFVTTdRVUZGUml4TlFVRk5MRU5CUVVNc1RVRkJUU3gxUWtGQmRVSXNSMEZCUnp0SlFVTnlReXh2UWtGQmIwSXNRMEZCUXl4UlFVRlJPMGxCUXpkQ0xHOUNRVUZ2UWl4RFFVRkRMRWxCUVVrN1NVRkRla0lzYjBKQlFXOUNMRU5CUVVNc1RVRkJUVHREUVVGRExFTkJRVU03UVVGREwwSXNUVUZCVFN4RFFVRkRMRTFCUVUwc05FSkJRVFJDTEVkQlFVYzdTVUZETVVNc2IwSkJRVzlDTEVOQlFVTXNVVUZCVVR0SlFVTTNRaXh2UWtGQmIwSXNRMEZCUXl4VlFVRlZPMGxCUXk5Q0xHOUNRVUZ2UWl4RFFVRkRMRTFCUVUwN1NVRkRNMElzYjBKQlFXOUNMRU5CUVVNc1MwRkJTenREUVVGRExFTkJRVU03UVVGRE9VSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1owTkJRV2RETEVkQlFVYzdTVUZET1VNc2QwSkJRWGRDTEVOQlFVTXNUMEZCVHp0SlFVTm9ReXgzUWtGQmQwSXNRMEZCUXl4WFFVRlhPMGxCUTNCRExIZENRVUYzUWl4RFFVRkRMSGxDUVVGNVFqdERRVUZETEVOQlFVTTdRVUZIZEVRc1RVRkJUU3hWUVVGVkxHdENRVUZyUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM3BFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zU1VGQlNTeExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVRkZMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wTXNUMEZCVHl4TlFVRk5MRWRCUVVjc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEYmtNc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU4yUkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpkRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNkMEpCUVhkQ0xFTkJRVU1zUTBGQll5eEZRVUZGTEVOQlFXTTdTVUZEY2tVc1RVRkJUU3hGUVVGRkxFZEJRVWNzU1VGQlNTeFJRVUZSTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZETVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzU1VGQlNTeFJRVUZSTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZETVVNc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNdlJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU55UkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8wbEJRelZETEVsQlFVa3NTMEZCU3l4SlFVRkpMRU5CUVVNN1VVRkJSU3hQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU16UWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6TkRMRTlCUVU4c1EwRkJReXhIUVVGSExFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZETlVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeFpRVUZaTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRia1FzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRla1FzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4blFrRkJaMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjJSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlF6VkRMRWxCUVVrc1MwRkJTeXhKUVVGSkxFTkJRVU03VVVGQlJTeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTXpRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpORExFOUJRVThzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGJrTXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3hqUVVGakxFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEY2tRc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNelJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRzFDUVVGdFFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUXpGRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE5VUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3hwUWtGQmFVSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVONFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNCR0xFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEZUVRc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETVVRc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeGxRVUZsTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRkRVFzVDBGQlR5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRM3BGTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1pVRkJaU3hEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzUkVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE5VTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRek5ETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1lVRkJZU3hEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzQkVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6RkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYjBKQlFXOUNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE0wUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVNMVF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUTJoRUxFbEJRVWtzVTBGQlV5eEpRVUZKTEVOQlFVTTdVVUZCUlN4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVNdlFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRek5ETEU5QlFVOHNRMEZCUXl4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRU5CUVVNN1FVRkROVU1zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4clFrRkJhMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjZSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJReTlFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2MwSkJRWE5DTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkROMFFzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTTFReXhOUVVGTkxGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlEyaEVMRWxCUVVrc1UwRkJVeXhKUVVGSkxFTkJRVU03VVVGQlJTeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTXZRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpORExFOUJRVThzUTBGQlF5eE5RVUZOTEVkQlFVY3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dEJRVU5zUkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHOUNRVUZ2UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRek5FTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYWtVc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHZRa0ZCYjBJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU16UkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTnVSQ3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlFVVXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRla0lzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRkRUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4clFrRkJhMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjZSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJReTlFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2RVSkJRWFZDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRPVVFzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGJrUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVGRkxFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEzcENMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETzBGQlEzUkNMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzY1VKQlFYRkNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE5VUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNSU3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzWkVMRWxCUVVrc1EwRkJReXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETzFGQlFVVXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRek5DTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1kwRkJZeXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzSkVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNMFFzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4MVFrRkJkVUlzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTTVSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpORExFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOd1JDeE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRM0pDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWRCUVVjc1IwRkJSeXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETzBsQlEyeERMRWxCUVVrc1EwRkJReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRE8xRkJRVVVzVDBGQlR5eEhRVUZITEVOQlFVTTdPMUZCUXpWRExFOUJRVThzVFVGQlRTeEhRVUZITEV0QlFVc3NSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNoRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZETlVRc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1JTeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSGxDUVVGNVFpeERRVUZETEZGQlFXZENPMGxCUTNoRUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRelZDTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2VVSkJRWGxDTEVOQlFVTXNWVUZCYTBJN1NVRkRNVVFzVDBGQlR5eFZRVUZWTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU5vUlN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHVkJRV1VzUTBGQlF5eERRVUZUTEVWQlFVVXNRMEZCVXp0SlFVTnNSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM3BDTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdRbWwwUVhKeVlYa2dabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZZbWwwTFdGeWNtRjVKenRjYm1sdGNHOXlkQ0I3UW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNc0lFbHVkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpmU0JtY205dElDY3VMM1I1Y0dWa0xXMWxkSEpwWTNNdlkyOXVjM1J6Snp0Y2JtbHRjRzl5ZENCN0lFMXRSR2x6ZEdGdVkyVkdkVzVqZEdsdmJuTk9ZVzFsY3lCOUlHWnliMjBnSnk0dmJXRmpjbTl0YjJ4bFkzVnNaUzFrYVhOMFlXNWpaUzFtZFc1amRHbHZibk1uTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYzJsdGFXeGhjbWwwZVUxbGRISnBZem9nZXlCYmJtRnRaVG9nYzNSeWFXNW5YVG9nS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2tnUFQ0Z2JuVnRZbVZ5SUgwZ1BTQjdYRzRnSUZ0Q2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NVVZVzVwYlc5MGIxMDZJSFJoYm1sdGIzUnZVMmx0YVd4aGNtbDBlU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa1JwWTJWZE9pQmthV05sVTJsdGFXeGhjbWwwZVN4Y2JpQWdXMEpwZEVGeWNtRjVUV1YwY21samMwNWhiV1Z6TGtGemVXMXRaWFJ5YVdOZE9pQmhjM2x0YldWMGNtbGpVMmx0YVd4aGNtbDBlU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa0p5WVhWdVFteGhibkYxWlhSZE9pQmljbUYxYmtKc1lXNXhkV1YwVTJsdGFXeGhjbWwwZVN4Y2JpQWdXMEpwZEVGeWNtRjVUV1YwY21samMwNWhiV1Z6TGtOdmMybHVaVjA2SUdOdmMybHVaVk5wYldsc1lYSnBkSGtzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVMZFd4amVubHVjMnRwWFRvZ2EzVnNZM3A1Ym5OcmFWTnBiV2xzWVhKcGRIa3NYRzRnSUZ0Q2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NU5ZME52Ym01aGRXZG9aWGxkT2lCdFkwTnZibTVoZFdkb1pYbFRhVzFwYkdGeWFYUjVMRnh1SUNCYlFtbDBRWEp5WVhsTlpYUnlhV056VG1GdFpYTXVVbTluYjNSSGIyeGtZbVZ5WjEwNklISnZaMjkwUjI5c1pHSmxjbWRUYVcxcGJHRnlhWFI1TEZ4dUlDQmJRbWwwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11VW5WemMyVnNYVG9nY25WemMyVnNVMmx0YVd4aGNtbDBlU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMbE52YTJGc1hUb2djMjlyWVd4VGFXMXBiR0Z5YVhSNUxGeHVJQ0JiUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVNHRnRiV2x1WjEwNklHaGhiVzFwYm1kVGFXMXBiR0Z5YVhSNUxGeHVJQ0JiUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVJYVmpiR2xrWldGdVhUb2daWFZqYkdsa1pXRnVVMmx0YVd4aGNtbDBlU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCa2FYTjBZVzVqWlUxbGRISnBZM002SUhzZ1cyNWhiV1U2SUhOMGNtbHVaMTA2SUNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwSUQwK0lHNTFiV0psY2lCOUlEMGdlMXh1SUNCYlFtbDBRWEp5WVhsTlpYUnlhV056VG1GdFpYTXVWR0Z1YVcxdmRHOWRPaUIwWVc1cGJXOTBiMFJwYzNSaGJtTmxMRnh1SUNCYlFtbDBRWEp5WVhsTlpYUnlhV056VG1GdFpYTXVSR2xqWlYwNklHUnBZMlZFYVhOMFlXNWpaU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa0Z6ZVcxdFpYUnlhV05kT2lCaGMzbHRiV1YwY21salJHbHpkR0Z1WTJVc1hHNGdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1Q2NtRjFia0pzWVc1eGRXVjBYVG9nWW5KaGRXNUNiR0Z1Y1hWbGRFUnBjM1JoYm1ObExGeHVJQ0JiUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVEyOXphVzVsWFRvZ1kyOXphVzVsUkdsemRHRnVZMlVzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVMZFd4amVubHVjMnRwWFRvZ2EzVnNZM3A1Ym5OcmFVUnBjM1JoYm1ObExGeHVJQ0JiUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVRXTkRiMjV1WVhWbmFHVjVYVG9nYldORGIyNXVZWFZuYUdWNVJHbHpkR0Z1WTJVc1hHNGdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1U2IyZHZkRWR2YkdSaVpYSm5YVG9nY205bmIzUkhiMnhrWW1WeVowUnBjM1JoYm1ObExGeHVJQ0JiUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVVuVnpjMlZzWFRvZ2NuVnpjMlZzUkdsemRHRnVZMlVzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVUYjJ0aGJGMDZJSE52YTJGc1JHbHpkR0Z1WTJVc1hHNGdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1SVlXMXRhVzVuWFRvZ2FHRnRiV2x1WjBScGMzUmhibU5sTEZ4dUlDQmJRbWwwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11UlhWamJHbGtaV0Z1WFRvZ1pYVmpiR2xrWldGdVJHbHpkR0Z1WTJVc1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdRMGhGVFY5VFNVMUpURUZTU1ZSWlgwMUZWRkpKUTFNZ1BTQmJYRzRnSUVKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxsUmhibWx0YjNSdkxGeHVJQ0JDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1RWFXTmxMRnh1SUNCQ2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NURiM05wYm1WZE8xeHVaWGh3YjNKMElHTnZibk4wSUZORlVWOVRVRUZEUlY5VFNVMUpURUZTU1ZSWlgwMUZWRkpKUTFNZ1BTQmJYRzRnSUVKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxsUmhibWx0YjNSdkxGeHVJQ0JDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1QmMzbHRiV1YwY21sakxGeHVJQ0JDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1RGIzTnBibVVzWEc0Z0lFSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMbE52YTJGc1hUdGNibVY0Y0c5eWRDQmpiMjV6ZENCTlFVTlNUMDFQVEVWRFZVeEZYMU5KVFVsTVFWSkpWRmxmVFVWVVVrbERVeUE5SUZ0Y2JpQWdUVzFFYVhOMFlXNWpaVVoxYm1OMGFXOXVjMDVoYldWekxraEJUVTFKVGtjc1hHNGdJRTF0UkdsemRHRnVZMlZHZFc1amRHbHZibk5PWVcxbGN5NU1SVlpGVGxOSVZFVkpUaXhjYmlBZ1RXMUVhWE4wWVc1alpVWjFibU4wYVc5dWMwNWhiV1Z6TGsxUFRrOU5SVkpmUTBoRlRVbERRVXhmUkVsVFZFRk9RMFZkTzF4dVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjBZVzVwYlc5MGIxTnBiV2xzWVhKcGRIa29lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnWTI5dWMzUWdkRzkwWVd3Z1BTQjRMblJ5ZFdWRGIzVnVkQ2dwSUNzZ2VTNTBjblZsUTI5MWJuUW9LVHRjYmlBZ2FXWWdLSFJ2ZEdGc0lEMDlJREFwSUhKbGRIVnliaUF4TGpBN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJQ2gwYjNSaGJDQXRJR052YlcxdmJpazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMFlXNXBiVzkwYjBScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkVhWE4wWVc1alpVWnliMjFUYVcxcGJHRnlhWFI1S0hSaGJtbHRiM1J2VTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjBZVzVwYlc5MGIwUnBjM1JoYm1ObFNXNTBRWEp5WVhrb2VEb2dWV2x1ZERNeVFYSnlZWGtzSUhrNklGVnBiblF6TWtGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnZUdJZ1BTQnVaWGNnUW1sMFFYSnlZWGtvZUN3Z2VDNXNaVzVuZEdnZ0tpQXpNaWs3WEc0Z0lHTnZibk4wSUhsaUlEMGdibVYzSUVKcGRFRnljbUY1S0hrc0lIa3ViR1Z1WjNSb0lDb2dNeklwTzF4dUlDQnlaWFIxY200Z1oyVjBSR2x6ZEdGdVkyVkdjbTl0VTJsdGFXeGhjbWwwZVNoMFlXNXBiVzkwYjFOcGJXbHNZWEpwZEhrb2VHSXNJSGxpS1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJrYVdObFUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS3lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd3Z1BUMGdNQ2tnY21WMGRYSnVJREF1TUR0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0J5WlhSMWNtNGdNaUFxSUdOdmJXMXZiaUF2SUhSdmRHRnNPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1pHbGpaVVJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLR1JwWTJWVGFXMXBiR0Z5YVhSNUtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR052YzJsdVpWTnBiV2xzWVhKcGRIa29lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnWTI5dWMzUWdkRzkwWVd3Z1BTQjRMblJ5ZFdWRGIzVnVkQ2dwSUNvZ2VTNTBjblZsUTI5MWJuUW9LVHRjYmlBZ2FXWWdLSFJ2ZEdGc0lEMDlJREFwSUhKbGRIVnliaUF3TGpBN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJRTFoZEdndWMzRnlkQ2gwYjNSaGJDazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamIzTnBibVZFYVhOMFlXNWpaU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2hqYjNOcGJtVlRhVzFwYkdGeWFYUjVLSGdzSUhrcEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdWMVkyeHBaR1ZoYmxOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRk5wYldsc1lYSnBkSGxHY205dFJHbHpkR0Z1WTJVb1pYVmpiR2xrWldGdVJHbHpkR0Z1WTJVb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaWFZqYkdsa1pXRnVSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJRTFoZEdndWMzRnlkQ2g0TG5SeWRXVkRiM1Z1ZENncElDc2dlUzUwY25WbFEyOTFiblFvS1NBdElESWdLaUI0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhR0Z0YldsdVoxTnBiV2xzWVhKcGRIa29lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEZOcGJXbHNZWEpwZEhsR2NtOXRSR2x6ZEdGdVkyVW9hR0Z0YldsdVowUnBjM1JoYm1ObEtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2hoYlcxcGJtZEVhWE4wWVc1alpTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2tnTFNBeUlDb2dlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MyOXJZV3hUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJQ2d5SUNvZ2RHOTBZV3dnTFNBeklDb2dZMjl0Ylc5dUtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOdmEyRnNSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29jMjlyWVd4VGFXMXBiR0Z5YVhSNUtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR3QxYkdONmVXNXphMmxUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElIUnZkR0ZzVUhKdlpDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXeFFjbTlrSUQwOUlEQXBJSEpsZEhWeWJpQXdMakE3WEc0Z0lHTnZibk4wSUdOdmJXMXZiaUE5SUhndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1R0Y2JpQWdjbVYwZFhKdUlDaGpiMjF0YjI0Z0tpQjBiM1JoYkNrZ0x5QW9NaUFxSUhSdmRHRnNVSEp2WkNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJyZFd4amVubHVjMnRwUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvYTNWc1kzcDVibk5yYVZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdiV05EYjI1dVlYVm5hR1Y1VTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQmpiMjV6ZENCMGIzUmhiQ0E5SUhndWRISjFaVU52ZFc1MEtDa2dLeUI1TG5SeWRXVkRiM1Z1ZENncE8xeHVJQ0JqYjI1emRDQjBiM1JoYkZCeWIyUWdQU0I0TG5SeWRXVkRiM1Z1ZENncElDb2dlUzUwY25WbFEyOTFiblFvS1R0Y2JpQWdhV1lnS0hSdmRHRnNVSEp2WkNBOVBTQXdLU0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQW9ZMjl0Ylc5dUlDb2dkRzkwWVd3Z0xTQjBiM1JoYkZCeWIyUXBJQzhnZEc5MFlXeFFjbTlrTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdiV05EYjI1dVlYVm5hR1Y1UkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvYldORGIyNXVZWFZuYUdWNVUybHRhV3hoY21sMGVTaDRMQ0I1S1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoYzNsdGJXVjBjbWxqVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQmpiMjV6ZENCdGFXNGdQU0JOWVhSb0xtMXBiaWg0TG5SeWRXVkRiM1Z1ZENncExDQjVMblJ5ZFdWRGIzVnVkQ2dwS1R0Y2JpQWdhV1lnS0cxcGJpQTlQU0F3S1NCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUJqYjIxdGIyNGdMeUJ0YVc0N1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoYzNsdGJXVjBjbWxqUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvWVhONWJXMWxkSEpwWTFOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ2JXRjRJRDBnVFdGMGFDNXRZWGdvZUM1MGNuVmxRMjkxYm5Rb0tTd2dlUzUwY25WbFEyOTFiblFvS1NrN1hHNGdJR2xtSUNodFlYZ2dQVDBnTUNrZ2NtVjBkWEp1SURBdU1EdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCeVpYUjFjbTRnWTI5dGJXOXVJQzhnYldGNE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWW5KaGRXNUNiR0Z1Y1hWbGRFUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtHSnlZWFZ1UW14aGJuRjFaWFJUYVcxcGJHRnlhWFI1S0hnc0lIa3BLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlISjFjM05sYkZOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdhV1lnS0hndWJHVnVaM1JvSUQwOUlEQXBJSEpsZEhWeWJpQXdMakE3WEc0Z0lHTnZibk4wSUdOdmJXMXZiaUE5SUhndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1R0Y2JpQWdjbVYwZFhKdUlHTnZiVzF2YmlBdklIZ3ViR1Z1WjNSb08xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY25WemMyVnNSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29jblZ6YzJWc1UybHRhV3hoY21sMGVTaDRMQ0I1S1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5YjJkdmRFZHZiR1JpWlhKblUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzVqYjNWdWRFSnBkSE1vZEhKMVpTa2dLeUI1TG1OdmRXNTBRbWwwY3loMGNuVmxLVHRjYmlBZ1kyOXVjM1FnYkdWdUlEMGdlQzVzWlc1bmRHZzdYRzRnSUdOdmJuTjBJR1JwWm1ZZ1BTQnNaVzRnTFNCMGIzUmhiQ0FySUdOdmJXMXZianRjYmlBZ2FXWWdLQ2hqYjIxdGIyNGdQVDBnYkdWdUtTQjhmQ0FvWkdsbVppQTlQU0JzWlc0cEtTQnlaWFIxY200Z01TNHdPMXh1SUNCbGJITmxJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QjBiM1JoYkNBcklHUnBabVlnTHlBb01pQXFJR3hsYmlBdElIUnZkR0ZzS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEp2WjI5MFIyOXNaR0psY21kRWFYTjBZVzVqWlNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnlaWFIxY200Z1oyVjBSR2x6ZEdGdVkyVkdjbTl0VTJsdGFXeGhjbWwwZVNoeWIyZHZkRWR2YkdSaVpYSm5VMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCblpYUlRhVzFwYkdGeWFYUjVSbkp2YlVScGMzUmhibU5sS0dScGMzUmhibU5sT2lCdWRXMWlaWElwSUh0Y2JpQWdjbVYwZFhKdUlERWdMeUFvTVNBcklHUnBjM1JoYm1ObEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvYzJsdGFXeGhjbWwwZVRvZ2JuVnRZbVZ5S1NCN0lDOHZhVzRnWTJGelpTQnphVzFwYkdGeWFYUjVJR2x6SURBc0lIVnpaU0J0WVhnZ2JuVnRZbVZ5SUdadmNpQm1iRzloZERNeVhHNGdJSEpsZEhWeWJpQnphVzFwYkdGeWFYUjVJRDA5UFNBd0lEOGdNeTQwTURJNE1qTkZLek00SURvZ0tERWdMeUJ6YVcxcGJHRnlhWFI1S1NBdElERTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdWRXMWxjbWxqUkdsemRHRnVZMlVvZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJcElIdGNiaUFnY21WMGRYSnVJRTFoZEdndVlXSnpLSGdnTFNCNUtUdGNibjFjYmlKZGZRPT0iLCJpbXBvcnQgKiBhcyBmbCBmcm9tICdmYXN0ZXN0LWxldmVuc2h0ZWluJztcbmltcG9ydCB7IGphcm9XaW5rbGVyIH0gZnJvbSAnamFyby13aW5rbGVyLXR5cGVzY3JpcHQnO1xuaW1wb3J0IHsgYXN5bW1ldHJpY0Rpc3RhbmNlLCBicmF1bkJsYW5xdWV0RGlzdGFuY2UsIGNvc2luZURpc3RhbmNlLCBkaWNlRGlzdGFuY2UsIGV1Y2xpZGVhbkRpc3RhbmNlLCBoYW1taW5nRGlzdGFuY2UsIGt1bGN6eW5za2lEaXN0YW5jZSwgbWNDb25uYXVnaGV5RGlzdGFuY2UsIHJvZ290R29sZGJlcmdEaXN0YW5jZSwgcnVzc2VsRGlzdGFuY2UsIHNva2FsRGlzdGFuY2UsIHRhbmltb3RvRGlzdGFuY2UsIG51bWVyaWNEaXN0YW5jZSwgdGFuaW1vdG9EaXN0YW5jZUludEFycmF5LCB9IGZyb20gJy4uL2Rpc3RhbmNlLW1ldHJpY3MtbWV0aG9kcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmltcG9ydCB7IG1tRGlzdGFuY2VGdW5jdGlvbnMsIE1tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcyB9IGZyb20gJy4uL21hY3JvbW9sZWN1bGUtZGlzdGFuY2UtZnVuY3Rpb25zJztcbmltcG9ydCB7IERpc3RhbmNlTWV0cmljc1N1YmplY3RzLCBCaXRBcnJheU1ldHJpY3NOYW1lcywgU3RyaW5nTWV0cmljc05hbWVzLCBWZWN0b3JNZXRyaWNzTmFtZXMsIE51bWJlck1ldHJpY3NOYW1lcywgSW50QXJyYXlNZXRyaWNzTmFtZXMgfSBmcm9tICcuL2NvbnN0cyc7XG5leHBvcnQgY29uc3QgdmVjdG9yRGlzdGFuY2VNZXRyaWNzTWV0aG9kcyA9IHtcbiAgICBbVmVjdG9yTWV0cmljc05hbWVzLkV1Y2xpZGVhbl06IGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlLFxufTtcbmV4cG9ydCBjb25zdCBzdHJpbmdEaXN0YW5jZU1ldHJpY3NNZXRob2RzID0ge1xuICAgIFtTdHJpbmdNZXRyaWNzTmFtZXMuTGV2ZW5zaHRlaW5dOiBmbC5kaXN0YW5jZSxcbiAgICBbU3RyaW5nTWV0cmljc05hbWVzLkphcm9XaW5rbGVyXTogamFyb1dpbmtsZXIsXG4gICAgW1N0cmluZ01ldHJpY3NOYW1lcy5NYW5oYXR0YW5dOiBtYW5oYXR0YW5EaXN0YW5jZSxcbn07XG5leHBvcnQgY29uc3QgYml0QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzID0ge1xuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b106IHRhbmltb3RvRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkRpY2VdOiBkaWNlRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkFzeW1tZXRyaWNdOiBhc3ltbWV0cmljRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkJyYXVuQmxhbnF1ZXRdOiBicmF1bkJsYW5xdWV0RGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkNvc2luZV06IGNvc2luZURpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5LdWxjenluc2tpXToga3VsY3p5bnNraURpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5NY0Nvbm5hdWdoZXldOiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuUm9nb3RHb2xkYmVyZ106IHJvZ290R29sZGJlcmdEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuUnVzc2VsXTogcnVzc2VsRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlNva2FsXTogc29rYWxEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuSGFtbWluZ106IGhhbW1pbmdEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuRXVjbGlkZWFuXTogZXVjbGlkZWFuRGlzdGFuY2UsXG59O1xuZXhwb3J0IGNvbnN0IGludEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kcyA9IHtcbiAgICBbSW50QXJyYXlNZXRyaWNzTmFtZXMuVGFuaW1vdG9JbnRBcnJheV06IHRhbmltb3RvRGlzdGFuY2VJbnRBcnJheSxcbn07XG5leHBvcnQgY29uc3QgbnVtYmVyRGlzdGFuY2VNZXRyaWNzTWV0aG9kcyA9IHtcbiAgICBbTnVtYmVyTWV0cmljc05hbWVzLk51bWVyaWNEaXN0YW5jZV06IG51bWVyaWNEaXN0YW5jZSxcbn07XG5leHBvcnQgY29uc3QgQXZhaWxhYmxlTWV0cmljcyA9IHtcbiAgICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuVmVjdG9yXToge1xuICAgICAgICBbVmVjdG9yTWV0cmljc05hbWVzLkV1Y2xpZGVhbl06IHZlY3RvckRpc3RhbmNlTWV0cmljc01ldGhvZHNbVmVjdG9yTWV0cmljc05hbWVzLkV1Y2xpZGVhbl0sXG4gICAgfSxcbiAgICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuU3RyaW5nXToge1xuICAgICAgICBbU3RyaW5nTWV0cmljc05hbWVzLkxldmVuc2h0ZWluXTogc3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tTdHJpbmdNZXRyaWNzTmFtZXMuTGV2ZW5zaHRlaW5dLFxuICAgICAgICBbU3RyaW5nTWV0cmljc05hbWVzLkphcm9XaW5rbGVyXTogc3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tTdHJpbmdNZXRyaWNzTmFtZXMuSmFyb1dpbmtsZXJdLFxuICAgICAgICBbU3RyaW5nTWV0cmljc05hbWVzLk1hbmhhdHRhbl06IHN0cmluZ0Rpc3RhbmNlTWV0cmljc01ldGhvZHNbU3RyaW5nTWV0cmljc05hbWVzLk1hbmhhdHRhbl0sXG4gICAgfSxcbiAgICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuQml0QXJyYXldOiB7XG4gICAgICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b106IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b10sXG4gICAgICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5EaWNlXTogYml0QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzW0JpdEFycmF5TWV0cmljc05hbWVzLkRpY2VdLFxuICAgICAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQXN5bW1ldHJpY106IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5Bc3ltbWV0cmljXSxcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkJyYXVuQmxhbnF1ZXRdOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuQnJhdW5CbGFucXVldF0sXG4gICAgICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Db3NpbmVdOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuQ29zaW5lXSxcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkt1bGN6eW5za2ldOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuS3VsY3p5bnNraV0sXG4gICAgICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5NY0Nvbm5hdWdoZXldOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuTWNDb25uYXVnaGV5XSxcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlJvZ290R29sZGJlcmddOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuUm9nb3RHb2xkYmVyZ10sXG4gICAgICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5SdXNzZWxdOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuUnVzc2VsXSxcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlNva2FsXTogYml0QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzW0JpdEFycmF5TWV0cmljc05hbWVzLlNva2FsXSxcbiAgICB9LFxuICAgIFtEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5NYWNyb01vbGVjdWxlXToge1xuICAgICAgICBbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLkhBTU1JTkddOiBtbURpc3RhbmNlRnVuY3Rpb25zW01tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5IQU1NSU5HXSxcbiAgICAgICAgW01tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5MRVZFTlNIVEVJTl06IG1tRGlzdGFuY2VGdW5jdGlvbnNbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLkxFVkVOU0hURUlOXSxcbiAgICAgICAgW01tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5ORUVETEVNQU5OX1dVTlNDSF06IG1tRGlzdGFuY2VGdW5jdGlvbnNbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLk5FRURMRU1BTk5fV1VOU0NIXSxcbiAgICAgICAgW01tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5NT05PTUVSX0NIRU1JQ0FMX0RJU1RBTkNFXTogbW1EaXN0YW5jZUZ1bmN0aW9uc1tNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMuTU9OT01FUl9DSEVNSUNBTF9ESVNUQU5DRV0sXG4gICAgfSxcbiAgICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuTnVtYmVyXToge1xuICAgICAgICBbTnVtYmVyTWV0cmljc05hbWVzLk51bWVyaWNEaXN0YW5jZV06IG51bWJlckRpc3RhbmNlTWV0cmljc01ldGhvZHNbTnVtYmVyTWV0cmljc05hbWVzLk51bWVyaWNEaXN0YW5jZV0sXG4gICAgfSxcbiAgICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuSW50QXJyYXldOiB7XG4gICAgICAgIFtJbnRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b0ludEFycmF5XTogaW50QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzW0ludEFycmF5TWV0cmljc05hbWVzLlRhbmltb3RvSW50QXJyYXldLFxuICAgIH1cbn07XG5leHBvcnQgY29uc3QgTWV0cmljVG9EYXRhVHlwZSA9IE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3MpXG4gICAgLnJlZHVjZSgocmV0LCBrZXkpID0+IHtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzW2tleV0pKVxuICAgICAgICByZXRbdmFsXSA9IGtleTtcbiAgICByZXR1cm4gcmV0O1xufSwge30pO1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnU3RyaW5nJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0JpdEFycmF5TWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnQml0QXJyYXknO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzVmVjdG9yTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnVmVjdG9yJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc01hY3JvTW9sZWN1bGVNZXRyaWMobmFtZSkge1xuICAgIHJldHVybiBNZXRyaWNUb0RhdGFUeXBlW25hbWVdID09IERpc3RhbmNlTWV0cmljc1N1YmplY3RzLk1hY3JvTW9sZWN1bGUudG9TdHJpbmcoKTtcbn1cbi8qKiBNYW5oYXR0YW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gc2VxdWVuY2VzIChtYXRjaCAtIDAsIG1pc21hdGNoIC0gMSkgbm9ybWFsaXplZCBmb3IgbGVuZ3RoLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hbmhhdHRhbkRpc3RhbmNlKHMxLCBzMikge1xuICAgIGlmIChzMS5sZW5ndGggIT09IHMyLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGxldCBkaXN0ID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzMS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIGRpc3QgKz0gczFbaV0gPT0gczJbaV0gPyAwIDogMTtcbiAgICAgICAgcmV0dXJuIGRpc3QgLyBzMS5sZW5ndGg7XG4gICAgfVxufVxuLyoqIFVuaWZpZWQgY2xhc3MgaW1wbGVtZW50aW5nIGRpZmZlcmVudCBzdHJpbmcgbWVhc3VyZXMuICovXG5leHBvcnQgY2xhc3MgTWVhc3VyZSB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBNZWFzdXJlIHdpdGggLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2QgTWV0aG9kIHRvIGNhbGN1bGF0ZSBkaXN0YW5jZSBiZXR3ZWVuIHN0cmluZ3MuXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWV0aG9kKSB7XG4gICAgICAgIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICAgICAgICB0aGlzLmRhdGFUeXBlID0gTWV0cmljVG9EYXRhVHlwZVttZXRob2RdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1c3RvbSBzdHJpbmcgZGlzdGFuY2UgZnVuY3Rpb24gc3BlY2lmaWVkLlxuICAgICAqIEBwYXJhbSB7b3B0c30gb3B0cyBPcHRpb25zIGZvciB0aGUgbWVhc3VyZS4gdXNlZCBmb3IgbWFjcm9tb2xlY3VsZSBkaXN0YW5jZXNcbiAgICAgKiBAcmV0dXJuIHtEaXN0YW5jZU1ldHJpY30gQ2FsbGJhY2sgb2YgdGhlIG1lYXN1cmUgY2hvc2VuLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIGdldE1lYXN1cmUob3B0cykge1xuICAgICAgICBjb25zdCBkaWN0ID0gQXZhaWxhYmxlTWV0cmljcztcbiAgICAgICAgaWYgKCFkaWN0Lmhhc093blByb3BlcnR5KHRoaXMuZGF0YVR5cGUpIHx8ICFkaWN0W3RoaXMuZGF0YVR5cGVdLmhhc093blByb3BlcnR5KHRoaXMubWV0aG9kKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBtZWFzdXJlICR7dGhpcy5tZXRob2R9IGZvciBkYXRhIHR5cGUgJHt0aGlzLmRhdGFUeXBlfWApO1xuICAgICAgICByZXR1cm4gaXNNYWNyb01vbGVjdWxlTWV0cmljKHRoaXMubWV0aG9kKSA/XG4gICAgICAgICAgICBkaWN0W3RoaXMuZGF0YVR5cGVdW3RoaXMubWV0aG9kXShvcHRzKSA6XG4gICAgICAgICAgICBkaWN0W3RoaXMuZGF0YVR5cGVdW3RoaXMubWV0aG9kXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXN0b20gc3RyaW5nIGRpc3RhbmNlIGJ5IHRoZSBnaXZlbiBkYXRhIHR5cGUuXG4gICAgICogQHBhcmFtIHtBdmFpbGFibGVEYXRhVHlwZXN9IGRhdGFUeXBlIE1ldHJpYydzIGRhdGEgdHlwZVxuICAgICAqIEByZXR1cm4ge3N0cmluZ1tdfSBNZXRyaWMgbmFtZXMgd2hpY2ggZXhwZWN0cyB0aGUgZ2l2ZW4gZGF0YSB0eXBlXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgICovXG4gICAgc3RhdGljIGdldE1ldHJpY0J5RGF0YVR5cGUoZGF0YVR5cGUpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3NbZGF0YVR5cGVdKTtcbiAgICB9XG4gICAgLyoqIFJldHVybnMgbWV0cmljIG5hbWVzIGF2YWlsYWJsZS5cbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0IGF2YWlsYWJsZU1lYXN1cmVzKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljcyk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pXUXRiV1YwY21samN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5SNWNHVmtMVzFsZEhKcFkzTXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVNeFF5eFBRVUZQTEVWQlFVTXNWMEZCVnl4RlFVRkRMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGY0VRc1QwRkJUeXhGUVVOTUxHdENRVUZyUWl4RlFVTnNRaXh4UWtGQmNVSXNSVUZEY2tJc1kwRkJZeXhGUVVOa0xGbEJRVmtzUlVGRFdpeHBRa0ZCYVVJc1JVRkRha0lzWlVGQlpTeEZRVU5tTEd0Q1FVRnJRaXhGUVVOc1FpeHZRa0ZCYjBJc1JVRkRjRUlzY1VKQlFYRkNMRVZCUTNKQ0xHTkJRV01zUlVGRFpDeGhRVUZoTEVWQlEySXNaMEpCUVdkQ0xFVkJRMmhDTEdWQlFXVXNSVUZEWml4M1FrRkJkMElzUjBGRGVrSXNUVUZCVFN3MlFrRkJOa0lzUTBGQlF6dEJRVVZ5UXl4UFFVRlBMRVZCUVVNc01FSkJRVEJDTEVWQlFVTXNUVUZCVFN4cFJFRkJhVVFzUTBGQlF6dEJRVWN6Uml4UFFVRlBMRVZCUVVNc2JVSkJRVzFDTEVWQlFVVXNkMEpCUVhkQ0xFVkJRVU1zVFVGQlRTeHhRMEZCY1VNc1EwRkJRenRCUVVOc1J5eFBRVUZQTEVWQlFVTXNkVUpCUVhWQ0xFVkJRVVVzYjBKQlFXOUNMRVZCUTI1RUxHdENRVUZyUWl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxHOUNRVUZ2UWl4RlFVRkRMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJSM0JITEUxQlFVMHNRMEZCUXl4TlFVRk5MRFJDUVVFMFFpeEhRVUY1UkR0SlFVTm9SeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhGUVVGRkxEQkNRVUV3UWp0RFFVTXpSQ3hEUVVGRE8wRkJSVVlzVFVGQlRTeERRVUZETEUxQlFVMHNORUpCUVRSQ0xFZEJRWGxFTzBsQlEyaEhMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGRkJRVkU3U1VGRE4wTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlN4WFFVRlhPMGxCUXpkRExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzYVVKQlFXbENPME5CUTJ4RUxFTkJRVU03UVVGRlJpeE5RVUZOTEVOQlFVTXNUVUZCVFN3NFFrRkJPRUlzUjBGQk5rUTdTVUZEZEVjc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3huUWtGQlowSTdTVUZEYWtRc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3haUVVGWk8wbEJRM3BETEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFVVXNhMEpCUVd0Q08wbEJRM0pFTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zWVVGQllTeERRVUZETEVWQlFVVXNjVUpCUVhGQ08wbEJRek5FTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNZMEZCWXp0SlFVTTNReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRkxHdENRVUZyUWp0SlFVTnlSQ3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRkxHOUNRVUZ2UWp0SlFVTjZSQ3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMR0ZCUVdFc1EwRkJReXhGUVVGRkxIRkNRVUZ4UWp0SlFVTXpSQ3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxHTkJRV003U1VGRE4wTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4aFFVRmhPMGxCUXpORExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzWlVGQlpUdEpRVU12UXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMR2xDUVVGcFFqdERRVU53UkN4RFFVRkRPMEZCUlVZc1RVRkJUU3hEUVVGRExFMUJRVTBzT0VKQlFUaENMRWRCUVcxRk8wbEJRelZITEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1JVRkJSU3gzUWtGQmQwSTdRMEZEYkVVc1EwRkJRenRCUVVWR0xFMUJRVTBzUTBGQlF5eE5RVUZOTERSQ1FVRTBRaXhIUVVGNVJEdEpRVU5vUnl4RFFVRkRMR3RDUVVGclFpeERRVUZETEdWQlFXVXNRMEZCUXl4RlFVRkZMR1ZCUVdVN1EwRkRkRVFzUTBGQlF6dEJRVVZHTEUxQlFVMHNRMEZCUXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITzBsQlF6bENMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVN1VVRkRhRU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhUUVVGVExFTkJRVU1zUlVGQlJTdzBRa0ZCTkVJc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VFFVRlRMRU5CUVVNN1MwRkRNMFk3U1VGRFJDeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTzFGQlEyaERMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc05FSkJRVFJDTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVjBGQlZ5eERRVUZETzFGQlF6bEdMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc05FSkJRVFJDTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVjBGQlZ5eERRVUZETzFGQlF6bEdMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc05FSkJRVFJDTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVTBGQlV5eERRVUZETzB0QlF6TkdPMGxCUTBRc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSVHRSUVVOc1F5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRkZCUVZFc1EwRkJRenRSUVVNNVJpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRWxCUVVrc1EwRkJRenRSUVVOMFJpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRlZCUVZVc1EwRkJRenRSUVVOc1J5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMR0ZCUVdFc1EwRkJRenRSUVVONFJ5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVNeFJpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRlZCUVZVc1EwRkJRenRSUVVOc1J5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRmxCUVZrc1EwRkJRenRSUVVOMFJ5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMR0ZCUVdFc1EwRkJRenRSUVVONFJ5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVNeFJpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTERoQ1FVRTRRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRXRCUVVzc1EwRkJRenRMUVVONlJqdEpRVU5FTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zWVVGQllTeERRVUZETEVWQlFVVTdVVUZEZGtNc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3h0UWtGQmJVSXNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eFBRVUZQTEVOQlFVTTdVVUZEZWtZc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSU3h0UWtGQmJVSXNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eFhRVUZYTEVOQlFVTTdVVUZEYWtjc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eEZRVUZGTEcxQ1FVRnRRaXhEUVVGRExIZENRVUYzUWl4RFFVRkRMR2xDUVVGcFFpeERRVUZETzFGQlF6ZEhMRU5CUVVNc2QwSkJRWGRDTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zUlVGQlJTeHRRa0ZCYlVJc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4NVFrRkJlVUlzUTBGQlF6dExRVU01U0R0SlFVTkVMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVN1VVRkRhRU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhsUVVGbExFTkJRVU1zUlVGQlJTdzBRa0ZCTkVJc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4bFFVRmxMRU5CUVVNN1MwRkRka2M3U1VGRFJDeERRVUZETEhWQ1FVRjFRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTzFGQlEyeERMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUlVGQlJTdzRRa0ZCT0VJc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4blFrRkJaMElzUTBGQlF6dExRVU12Unp0RFFVTkdMRU5CUVVNN1FVRkZSaXhOUVVGTkxFTkJRVU1zVFVGQlRTeG5Ra0ZCWjBJc1IwRkJjVUlzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF6dExRVU0xUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGeFFpeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMGxCUTNKRExFdEJRVXNzVFVGQlRTeEhRVUZITEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRjVRaXhEUVVGRExFTkJRVU03VVVGRGVFVXNSMEZCUnl4RFFVRkRMRWRCUVhsQ0xFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdTVUZGZGtNc1QwRkJUeXhIUVVGSExFTkJRVU03UVVGRFlpeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRmxWQ3hOUVVGTkxGVkJRVlVzWTBGQll5eERRVUZETEVsQlFXdENPMGxCUXk5RExFOUJRVThzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzVVVGQlVTeERRVUZETzBGQlF6VkRMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1NVRkJhMEk3U1VGRGFrUXNUMEZCVHl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4VlFVRlZMRU5CUVVNN1FVRkRPVU1zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4alFVRmpMRU5CUVVNc1NVRkJhMEk3U1VGREwwTXNUMEZCVHl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNN1FVRkROVU1zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4eFFrRkJjVUlzUTBGQlF5eEpRVUZyUWp0SlFVTjBSQ3hQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxIVkNRVUYxUWl4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dEJRVU53Uml4RFFVRkRPMEZCUlVRc1owZEJRV2RITzBGQlEyaEhMRTFCUVUwc1ZVRkJWU3hwUWtGQmFVSXNRMEZCUXl4RlFVRlZMRVZCUVVVc1JVRkJWVHRKUVVOMFJDeEpRVUZKTEVWQlFVVXNRMEZCUXl4TlFVRk5MRXRCUVVzc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJUdFJRVU16UWl4UFFVRlBMRU5CUVVNc1EwRkJRenRMUVVOV08xTkJRVTA3VVVGRFRDeEpRVUZKTEVsQlFVa3NSMEZCVnl4RFFVRkRMRU5CUVVNN1VVRkRja0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZPMWxCUTJoRExFbEJRVWtzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4UFFVRlBMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETzB0QlEzcENPMEZCUTBnc1EwRkJRenRCUVVWRUxEUkVRVUUwUkR0QlFVTTFSQ3hOUVVGTkxFOUJRVThzVDBGQlR6dEpRVWxzUWpzN096dFBRVWxITzBsQlEwZ3NXVUZCV1N4TlFVRnZRanRSUVVNNVFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOeVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCZFVJc1EwRkJRenRKUVVOcVJTeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU1N4VlFVRlZMRU5CUVVNc1NVRkJWVHRSUVVNeFFpeE5RVUZOTEVsQlFVa3NSMEZGVGl4blFrRkJaMElzUTBGQlF6dFJRVU55UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEzcEdMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYlVKQlFXMUNMRWxCUVVrc1EwRkJReXhOUVVGTkxHdENRVUZyUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU51Uml4UFFVRlBMSEZDUVVGeFFpeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM2hETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCY1VNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6ZEZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJiVUlzUTBGQlF6dEpRVU4yUkN4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTU3hOUVVGTkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1VVRkJORUk3VVVGRE5VUXNUMEZCVHl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGFrUXNRMEZCUXp0SlFVVkVPenRQUVVWSE8wbEJRMGdzVFVGQlRTeExRVUZMTEdsQ1FVRnBRanRSUVVNeFFpeFBRVUZQTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0SlFVTjJReXhEUVVGRE8wTkJRMFlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm1iQ0JtY205dElDZG1ZWE4wWlhOMExXeGxkbVZ1YzJoMFpXbHVKenRjYm1sdGNHOXlkQ0I3YW1GeWIxZHBibXRzWlhKOUlHWnliMjBnSjJwaGNtOHRkMmx1YTJ4bGNpMTBlWEJsYzJOeWFYQjBKenRjYm1sdGNHOXlkQ0I3UkdsemRHRnVZMlZOWlhSeWFXTjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3WEc0Z0lHRnplVzF0WlhSeWFXTkVhWE4wWVc1alpTeGNiaUFnWW5KaGRXNUNiR0Z1Y1hWbGRFUnBjM1JoYm1ObExGeHVJQ0JqYjNOcGJtVkVhWE4wWVc1alpTeGNiaUFnWkdsalpVUnBjM1JoYm1ObExGeHVJQ0JsZFdOc2FXUmxZVzVFYVhOMFlXNWpaU3hjYmlBZ2FHRnRiV2x1WjBScGMzUmhibU5sTEZ4dUlDQnJkV3hqZW5sdWMydHBSR2x6ZEdGdVkyVXNYRzRnSUcxalEyOXVibUYxWjJobGVVUnBjM1JoYm1ObExGeHVJQ0J5YjJkdmRFZHZiR1JpWlhKblJHbHpkR0Z1WTJVc1hHNGdJSEoxYzNObGJFUnBjM1JoYm1ObExGeHVJQ0J6YjJ0aGJFUnBjM1JoYm1ObExGeHVJQ0IwWVc1cGJXOTBiMFJwYzNSaGJtTmxMRnh1SUNCdWRXMWxjbWxqUkdsemRHRnVZMlVzWEc0Z0lIUmhibWx0YjNSdlJHbHpkR0Z1WTJWSmJuUkJjbkpoZVN4Y2JuMGdabkp2YlNBbkxpNHZaR2x6ZEdGdVkyVXRiV1YwY21samN5MXRaWFJvYjJSekp6dGNibHh1YVcxd2IzSjBJSHRqWVd4amRXeGhkR1ZGZFdOc2FXUmxZVzVFYVhOMFlXNWpaWDBnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12ZG1WamRHOXlMVzl3WlhKaGRHbHZibk1uTzF4dWFXMXdiM0owSUVKcGRFRnljbUY1SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDJKcGRDMWhjbkpoZVNjN1hHNXBiWEJ2Y25RZ2UxWmxZM1J2Y2l3Z1UzUnlhVzVuUkdsamRHbHZibUZ5ZVgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdHRiVVJwYzNSaGJtTmxSblZ1WTNScGIyNXpMQ0JOYlVScGMzUmhibU5sUm5WdVkzUnBiMjV6VG1GdFpYTjlJR1p5YjIwZ0p5NHVMMjFoWTNKdmJXOXNaV04xYkdVdFpHbHpkR0Z1WTJVdFpuVnVZM1JwYjI1ekp6dGNibWx0Y0c5eWRDQjdSR2x6ZEdGdVkyVk5aWFJ5YVdOelUzVmlhbVZqZEhNc0lFSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMRnh1SUNCVGRISnBibWROWlhSeWFXTnpUbUZ0WlhNc0lGWmxZM1J2Y2sxbGRISnBZM05PWVcxbGN5d2dUblZ0WW1WeVRXVjBjbWxqYzA1aGJXVnpMQ0JKYm5SQmNuSmhlVTFsZEhKcFkzTk9ZVzFsYzMwZ1puSnZiU0FuTGk5amIyNXpkSE1uTzF4dVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCMlpXTjBiM0pFYVhOMFlXNWpaVTFsZEhKcFkzTk5aWFJvYjJSek9pQjdJRnR1WVcxbE9pQnpkSEpwYm1kZE9pQW9lRG9nVm1WamRHOXlMQ0I1T2lCV1pXTjBiM0lwSUQwK0lHNTFiV0psY2lCOUlEMGdlMXh1SUNCYlZtVmpkRzl5VFdWMGNtbGpjMDVoYldWekxrVjFZMnhwWkdWaGJsMDZJR05oYkdOMWJHRjBaVVYxWTJ4cFpHVmhia1JwYzNSaGJtTmxMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhOMGNtbHVaMFJwYzNSaGJtTmxUV1YwY21samMwMWxkR2h2WkhNNklIc2dXMjVoYldVNklITjBjbWx1WjEwNklDaDRPaUJ6ZEhKcGJtY3NJSGs2SUhOMGNtbHVaeWtnUFQ0Z2JuVnRZbVZ5SUgwZ1BTQjdYRzRnSUZ0VGRISnBibWROWlhSeWFXTnpUbUZ0WlhNdVRHVjJaVzV6YUhSbGFXNWRPaUJtYkM1a2FYTjBZVzVqWlN4Y2JpQWdXMU4wY21sdVowMWxkSEpwWTNOT1lXMWxjeTVLWVhKdlYybHVhMnhsY2wwNklHcGhjbTlYYVc1cmJHVnlMRnh1SUNCYlUzUnlhVzVuVFdWMGNtbGpjMDVoYldWekxrMWhibWhoZEhSaGJsMDZJRzFoYm1oaGRIUmhia1JwYzNSaGJtTmxMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdKcGRFRnljbUY1UkdsemRHRnVZMlZOWlhSeWFXTnpUV1YwYUc5a2N6b2dleUJiYm1GdFpUb2djM1J5YVc1blhUb2dLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTa2dQVDRnYm5WdFltVnlJSDBnUFNCN1hHNGdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1VVlXNXBiVzkwYjEwNklIUmhibWx0YjNSdlJHbHpkR0Z1WTJVc1hHNGdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1RWFXTmxYVG9nWkdsalpVUnBjM1JoYm1ObExGeHVJQ0JiUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVFYTjViVzFsZEhKcFkxMDZJR0Z6ZVcxdFpYUnlhV05FYVhOMFlXNWpaU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa0p5WVhWdVFteGhibkYxWlhSZE9pQmljbUYxYmtKc1lXNXhkV1YwUkdsemRHRnVZMlVzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVEYjNOcGJtVmRPaUJqYjNOcGJtVkVhWE4wWVc1alpTeGNiaUFnVzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxrdDFiR042ZVc1emEybGRPaUJyZFd4amVubHVjMnRwUkdsemRHRnVZMlVzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVOWTBOdmJtNWhkV2RvWlhsZE9pQnRZME52Ym01aGRXZG9aWGxFYVhOMFlXNWpaU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMbEp2WjI5MFIyOXNaR0psY21kZE9pQnliMmR2ZEVkdmJHUmlaWEpuUkdsemRHRnVZMlVzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVTZFhOelpXeGRPaUJ5ZFhOelpXeEVhWE4wWVc1alpTeGNiaUFnVzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxsTnZhMkZzWFRvZ2MyOXJZV3hFYVhOMFlXNWpaU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa2hoYlcxcGJtZGRPaUJvWVcxdGFXNW5SR2x6ZEdGdVkyVXNYRzRnSUZ0Q2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NUZkV05zYVdSbFlXNWRPaUJsZFdOc2FXUmxZVzVFYVhOMFlXNWpaU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCcGJuUkJjbkpoZVVScGMzUmhibU5sVFdWMGNtbGpjMDFsZEdodlpITTZJSHNnVzI1aGJXVTZJSE4wY21sdVoxMDZJQ2g0T2lCVmFXNTBNekpCY25KaGVTd2dlVG9nVldsdWRETXlRWEp5WVhrcElEMCtJRzUxYldKbGNpQjlJRDBnZTF4dUlDQmJTVzUwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11VkdGdWFXMXZkRzlKYm5SQmNuSmhlVjA2SUhSaGJtbHRiM1J2UkdsemRHRnVZMlZKYm5SQmNuSmhlU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCdWRXMWlaWEpFYVhOMFlXNWpaVTFsZEhKcFkzTk5aWFJvYjJSek9pQjdJRnR1WVcxbE9pQnpkSEpwYm1kZE9pQW9lRG9nYm5WdFltVnlMQ0I1T2lCdWRXMWlaWElwSUQwK0lHNTFiV0psY2lCOUlEMGdlMXh1SUNCYlRuVnRZbVZ5VFdWMGNtbGpjMDVoYldWekxrNTFiV1Z5YVdORWFYTjBZVzVqWlYwNklHNTFiV1Z5YVdORWFYTjBZVzVqWlN4Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkJkbUZwYkdGaWJHVk5aWFJ5YVdOeklEMGdlMXh1SUNCYlJHbHpkR0Z1WTJWTlpYUnlhV056VTNWaWFtVmpkSE11Vm1WamRHOXlYVG9nZTF4dUlDQWdJRnRXWldOMGIzSk5aWFJ5YVdOelRtRnRaWE11UlhWamJHbGtaV0Z1WFRvZ2RtVmpkRzl5UkdsemRHRnVZMlZOWlhSeWFXTnpUV1YwYUc5a2MxdFdaV04wYjNKTlpYUnlhV056VG1GdFpYTXVSWFZqYkdsa1pXRnVYU3hjYmlBZ2ZTeGNiaUFnVzBScGMzUmhibU5sVFdWMGNtbGpjMU4xWW1wbFkzUnpMbE4wY21sdVoxMDZJSHRjYmlBZ0lDQmJVM1J5YVc1blRXVjBjbWxqYzA1aGJXVnpMa3hsZG1WdWMyaDBaV2x1WFRvZ2MzUnlhVzVuUkdsemRHRnVZMlZOWlhSeWFXTnpUV1YwYUc5a2MxdFRkSEpwYm1kTlpYUnlhV056VG1GdFpYTXVUR1YyWlc1emFIUmxhVzVkTEZ4dUlDQWdJRnRUZEhKcGJtZE5aWFJ5YVdOelRtRnRaWE11U21GeWIxZHBibXRzWlhKZE9pQnpkSEpwYm1kRWFYTjBZVzVqWlUxbGRISnBZM05OWlhSb2IyUnpXMU4wY21sdVowMWxkSEpwWTNOT1lXMWxjeTVLWVhKdlYybHVhMnhsY2wwc1hHNGdJQ0FnVzFOMGNtbHVaMDFsZEhKcFkzTk9ZVzFsY3k1TllXNW9ZWFIwWVc1ZE9pQnpkSEpwYm1kRWFYTjBZVzVqWlUxbGRISnBZM05OWlhSb2IyUnpXMU4wY21sdVowMWxkSEpwWTNOT1lXMWxjeTVOWVc1b1lYUjBZVzVkTEZ4dUlDQjlMRnh1SUNCYlJHbHpkR0Z1WTJWTlpYUnlhV056VTNWaWFtVmpkSE11UW1sMFFYSnlZWGxkT2lCN1hHNGdJQ0FnVzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxsUmhibWx0YjNSdlhUb2dZbWwwUVhKeVlYbEVhWE4wWVc1alpVMWxkSEpwWTNOTlpYUm9iMlJ6VzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxsUmhibWx0YjNSdlhTeGNiaUFnSUNCYlFtbDBRWEp5WVhsTlpYUnlhV056VG1GdFpYTXVSR2xqWlYwNklHSnBkRUZ5Y21GNVJHbHpkR0Z1WTJWTlpYUnlhV056VFdWMGFHOWtjMXRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1RWFXTmxYU3hjYmlBZ0lDQmJRbWwwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11UVhONWJXMWxkSEpwWTEwNklHSnBkRUZ5Y21GNVJHbHpkR0Z1WTJWTlpYUnlhV056VFdWMGFHOWtjMXRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1QmMzbHRiV1YwY21salhTeGNiaUFnSUNCYlFtbDBRWEp5WVhsTlpYUnlhV056VG1GdFpYTXVRbkpoZFc1Q2JHRnVjWFZsZEYwNklHSnBkRUZ5Y21GNVJHbHpkR0Z1WTJWTlpYUnlhV056VFdWMGFHOWtjMXRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1Q2NtRjFia0pzWVc1eGRXVjBYU3hjYmlBZ0lDQmJRbWwwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11UTI5emFXNWxYVG9nWW1sMFFYSnlZWGxFYVhOMFlXNWpaVTFsZEhKcFkzTk5aWFJvYjJSelcwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa052YzJsdVpWMHNYRzRnSUNBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa3QxYkdONmVXNXphMmxkT2lCaWFYUkJjbkpoZVVScGMzUmhibU5sVFdWMGNtbGpjMDFsZEdodlpITmJRbWwwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11UzNWc1kzcDVibk5yYVYwc1hHNGdJQ0FnVzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxrMWpRMjl1Ym1GMVoyaGxlVjA2SUdKcGRFRnljbUY1UkdsemRHRnVZMlZOWlhSeWFXTnpUV1YwYUc5a2MxdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVOWTBOdmJtNWhkV2RvWlhsZExGeHVJQ0FnSUZ0Q2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NVNiMmR2ZEVkdmJHUmlaWEpuWFRvZ1ltbDBRWEp5WVhsRWFYTjBZVzVqWlUxbGRISnBZM05OWlhSb2IyUnpXMEpwZEVGeWNtRjVUV1YwY21samMwNWhiV1Z6TGxKdloyOTBSMjlzWkdKbGNtZGRMRnh1SUNBZ0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVTZFhOelpXeGRPaUJpYVhSQmNuSmhlVVJwYzNSaGJtTmxUV1YwY21samMwMWxkR2h2WkhOYlFtbDBRWEp5WVhsTlpYUnlhV056VG1GdFpYTXVVblZ6YzJWc1hTeGNiaUFnSUNCYlFtbDBRWEp5WVhsTlpYUnlhV056VG1GdFpYTXVVMjlyWVd4ZE9pQmlhWFJCY25KaGVVUnBjM1JoYm1ObFRXVjBjbWxqYzAxbGRHaHZaSE5iUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVUyOXJZV3hkTEZ4dUlDQjlMRnh1SUNCYlJHbHpkR0Z1WTJWTlpYUnlhV056VTNWaWFtVmpkSE11VFdGamNtOU5iMnhsWTNWc1pWMDZJSHNnTHk4Z2IzQjBhVzl1WVd3Z1lYSm5jeUJ1WldWa1pXUWdabTl5SUcxaFkzSnZiVzlzWldOMWJHVWdablZ1WTNScGIyNXpJSGRvYVdOb0lHbHVhWFJwWVd4cGVtVWdkR2hsYlZ4dUlDQWdJRnROYlVScGMzUmhibU5sUm5WdVkzUnBiMjV6VG1GdFpYTXVTRUZOVFVsT1IxMDZJRzF0UkdsemRHRnVZMlZHZFc1amRHbHZibk5iVFcxRWFYTjBZVzVqWlVaMWJtTjBhVzl1YzA1aGJXVnpMa2hCVFUxSlRrZGRMRnh1SUNBZ0lGdE5iVVJwYzNSaGJtTmxSblZ1WTNScGIyNXpUbUZ0WlhNdVRFVldSVTVUU0ZSRlNVNWRPaUJ0YlVScGMzUmhibU5sUm5WdVkzUnBiMjV6VzAxdFJHbHpkR0Z1WTJWR2RXNWpkR2x2Ym5OT1lXMWxjeTVNUlZaRlRsTklWRVZKVGwwc1hHNGdJQ0FnVzAxdFJHbHpkR0Z1WTJWR2RXNWpkR2x2Ym5OT1lXMWxjeTVPUlVWRVRFVk5RVTVPWDFkVlRsTkRTRjA2SUcxdFJHbHpkR0Z1WTJWR2RXNWpkR2x2Ym5OYlRXMUVhWE4wWVc1alpVWjFibU4wYVc5dWMwNWhiV1Z6TGs1RlJVUk1SVTFCVGs1ZlYxVk9VME5JWFN4Y2JpQWdJQ0JiVFcxRWFYTjBZVzVqWlVaMWJtTjBhVzl1YzA1aGJXVnpMazFQVGs5TlJWSmZRMGhGVFVsRFFVeGZSRWxUVkVGT1EwVmRPaUJ0YlVScGMzUmhibU5sUm5WdVkzUnBiMjV6VzAxdFJHbHpkR0Z1WTJWR2RXNWpkR2x2Ym5OT1lXMWxjeTVOVDA1UFRVVlNYME5JUlUxSlEwRk1YMFJKVTFSQlRrTkZYU3hjYmlBZ2ZTeGNiaUFnVzBScGMzUmhibU5sVFdWMGNtbGpjMU4xWW1wbFkzUnpMazUxYldKbGNsMDZJSHRjYmlBZ0lDQmJUblZ0WW1WeVRXVjBjbWxqYzA1aGJXVnpMazUxYldWeWFXTkVhWE4wWVc1alpWMDZJRzUxYldKbGNrUnBjM1JoYm1ObFRXVjBjbWxqYzAxbGRHaHZaSE5iVG5WdFltVnlUV1YwY21samMwNWhiV1Z6TGs1MWJXVnlhV05FYVhOMFlXNWpaVjBzWEc0Z0lIMHNYRzRnSUZ0RWFYTjBZVzVqWlUxbGRISnBZM05UZFdKcVpXTjBjeTVKYm5SQmNuSmhlVjA2SUh0Y2JpQWdJQ0JiU1c1MFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVZHRnVhVzF2ZEc5SmJuUkJjbkpoZVYwNklHbHVkRUZ5Y21GNVJHbHpkR0Z1WTJWTlpYUnlhV056VFdWMGFHOWtjMXRKYm5SQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1VVlXNXBiVzkwYjBsdWRFRnljbUY1WFN4Y2JpQWdmVnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUUxbGRISnBZMVJ2UkdGMFlWUjVjR1U2SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCUFltcGxZM1F1YTJWNWN5aEJkbUZwYkdGaWJHVk5aWFJ5YVdOektWeHVJQ0F1Y21Wa2RXTmxLQ2h5WlhRNklGTjBjbWx1WjBScFkzUnBiMjVoY25rc0lHdGxlU2tnUFQ0Z2UxeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2RtRnNJRzltSUU5aWFtVmpkQzVyWlhsektFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYmEyVjVJR0Z6SUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsYzEwcEtWeHVJQ0FnSUNBZ2NtVjBXM1poYkNCaGN5QkJkbUZwYkdGaWJHVkVZWFJoVkhsd1pYTmRJRDBnYTJWNU8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhKbGREdGNiaUFnZlN3Z2UzMHBPMXh1WEc1bGVIQnZjblFnZEhsd1pTQkJkbUZwYkdGaWJHVkVZWFJoVkhsd1pYTWdQU0JyWlhsdlppQjBlWEJsYjJZZ1FYWmhhV3hoWW14bFRXVjBjbWxqY3p0Y2JtVjRjRzl5ZENCMGVYQmxJRlpsWTNSdmNrMWxkSEpwWTNNZ1BTQnJaWGx2WmlCMGVYQmxiMllnUVhaaGFXeGhZbXhsVFdWMGNtbGpjMXRFYVhOMFlXNWpaVTFsZEhKcFkzTlRkV0pxWldOMGN5NVdaV04wYjNKZE8xeHVaWGh3YjNKMElIUjVjR1VnVTNSeWFXNW5UV1YwY21samN5QTlJR3RsZVc5bUlIUjVjR1Z2WmlCQmRtRnBiR0ZpYkdWTlpYUnlhV056VzBScGMzUmhibU5sVFdWMGNtbGpjMU4xWW1wbFkzUnpMbE4wY21sdVoxMDdYRzVsZUhCdmNuUWdkSGx3WlNCQ2FYUkJjbkpoZVUxbGRISnBZM01nUFNCclpYbHZaaUIwZVhCbGIyWWdRWFpoYVd4aFlteGxUV1YwY21samMxdEVhWE4wWVc1alpVMWxkSEpwWTNOVGRXSnFaV04wY3k1Q2FYUkJjbkpoZVYwN1hHNWxlSEJ2Y25RZ2RIbHdaU0JMYm05M2JrMWxkSEpwWTNNZ1BTQlRkSEpwYm1kTlpYUnlhV056SUh3Z1FtbDBRWEp5WVhsTlpYUnlhV056SUh3Z1ZtVmpkRzl5VFdWMGNtbGpjeUI4WEc0Z0lFMXRSR2x6ZEdGdVkyVkdkVzVqZEdsdmJuTk9ZVzFsY3lCOElFNTFiV0psY2sxbGRISnBZM05PWVcxbGN5QjhJRWx1ZEVGeWNtRjVUV1YwY21samMwNWhiV1Z6TzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JXWVd4cFpGUjVjR1Z6SUQxY2JpQWdleUJrWVhSaE9pQnpkSEpwYm1kYlhTd2diV1YwY21sak9pQlRkSEpwYm1kTlpYUnlhV056SUh3Z1RXMUVhWE4wWVc1alpVWjFibU4wYVc5dWMwNWhiV1Z6SUgwZ2ZGeHVJQ0I3SUdSaGRHRTZJRlpsWTNSdmNsdGRMQ0J0WlhSeWFXTTZJRlpsWTNSdmNrMWxkSEpwWTNNZ2ZTQjhYRzRnSUhzZ1pHRjBZVG9nUW1sMFFYSnlZWGxiWFN3Z2JXVjBjbWxqT2lCQ2FYUkJjbkpoZVUxbGRISnBZM01nZlNCOFhHNGdJSHNnWkdGMFlUb2diblZ0WW1WeVcxMHNJRzFsZEhKcFl6b2dUblZ0WW1WeVRXVjBjbWxqYzA1aGJXVnpJSDA3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMxTjBjbWx1WjAxbGRISnBZeWh1WVcxbE9pQkxibTkzYmsxbGRISnBZM01wSUh0Y2JpQWdjbVYwZFhKdUlFMWxkSEpwWTFSdlJHRjBZVlI1Y0dWYmJtRnRaVjBnUFQwZ0oxTjBjbWx1WnljN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzBKcGRFRnljbUY1VFdWMGNtbGpLRzVoYldVNklFdHViM2R1VFdWMGNtbGpjeWtnZTF4dUlDQnlaWFIxY200Z1RXVjBjbWxqVkc5RVlYUmhWSGx3WlZ0dVlXMWxYU0E5UFNBblFtbDBRWEp5WVhrbk8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOV1pXTjBiM0pOWlhSeWFXTW9ibUZ0WlRvZ1MyNXZkMjVOWlhSeWFXTnpLU0I3WEc0Z0lISmxkSFZ5YmlCTlpYUnlhV05VYjBSaGRHRlVlWEJsVzI1aGJXVmRJRDA5SUNkV1pXTjBiM0luTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5OWVdOeWIwMXZiR1ZqZFd4bFRXVjBjbWxqS0c1aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3lrZ2UxeHVJQ0J5WlhSMWNtNGdUV1YwY21salZHOUVZWFJoVkhsd1pWdHVZVzFsWFNBOVBTQkVhWE4wWVc1alpVMWxkSEpwWTNOVGRXSnFaV04wY3k1TllXTnliMDF2YkdWamRXeGxMblJ2VTNSeWFXNW5LQ2s3WEc1OVhHNWNiaThxS2lCTllXNW9ZWFIwWVc0Z1pHbHpkR0Z1WTJVZ1ltVjBkMlZsYmlCMGQyOGdjMlZ4ZFdWdVkyVnpJQ2h0WVhSamFDQXRJREFzSUcxcGMyMWhkR05vSUMwZ01Ta2dibTl5YldGc2FYcGxaQ0JtYjNJZ2JHVnVaM1JvTGlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHMWhibWhoZEhSaGJrUnBjM1JoYm1ObEtITXhPaUJ6ZEhKcGJtY3NJSE15T2lCemRISnBibWNwT2lCdWRXMWlaWElnZTF4dUlDQnBaaUFvY3pFdWJHVnVaM1JvSUNFOVBTQnpNaTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z01UdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnNaWFFnWkdsemREb2diblZ0WW1WeUlEMGdNRHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTVRzZ2FTQThJSE14TG14bGJtZDBhRHNnYVNzcktWeHVJQ0FnSUNBZ1pHbHpkQ0FyUFNCek1WdHBYU0E5UFNCek1sdHBYU0EvSURBZ09pQXhPMXh1SUNBZ0lISmxkSFZ5YmlCa2FYTjBJQzhnY3pFdWJHVnVaM1JvTzF4dUlDQjlYRzU5WEc1Y2JpOHFLaUJWYm1sbWFXVmtJR05zWVhOeklHbHRjR3hsYldWdWRHbHVaeUJrYVdabVpYSmxiblFnYzNSeWFXNW5JRzFsWVhOMWNtVnpMaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRTFsWVhOMWNtVWdlMXh1SUNCd2NtOTBaV04wWldRZ2JXVjBhRzlrT2lCTGJtOTNiazFsZEhKcFkzTTdYRzRnSUhCeWIzUmxZM1JsWkNCa1lYUmhWSGx3WlRvZ1FYWmhhV3hoWW14bFJHRjBZVlI1Y0dWek8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGNtVmhkR1Z6SUdGdUlHbHVjM1JoYm1ObElHOW1JRTFsWVhOMWNtVWdkMmwwYUNBdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J0WlhSb2IyUWdUV1YwYUc5a0lIUnZJR05oYkdOMWJHRjBaU0JrYVhOMFlXNWpaU0JpWlhSM1pXVnVJSE4wY21sdVozTXVYRzRnSUNBcUlFQnRaVzFpWlhKdlppQk5aV0Z6ZFhKbGNseHVJQ0FnS2k5Y2JpQWdZMjl1YzNSeWRXTjBiM0lvYldWMGFHOWtPaUJMYm05M2JrMWxkSEpwWTNNcElIdGNiaUFnSUNCMGFHbHpMbTFsZEdodlpDQTlJRzFsZEdodlpEdGNiaUFnSUNCMGFHbHpMbVJoZEdGVWVYQmxJRDBnVFdWMGNtbGpWRzlFWVhSaFZIbHdaVnR0WlhSb2IyUmRJR0Z6SUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHTjFjM1J2YlNCemRISnBibWNnWkdsemRHRnVZMlVnWm5WdVkzUnBiMjRnYzNCbFkybG1hV1ZrTGx4dUlDQWdLaUJBY0dGeVlXMGdlMjl3ZEhOOUlHOXdkSE1nVDNCMGFXOXVjeUJtYjNJZ2RHaGxJRzFsWVhOMWNtVXVJSFZ6WldRZ1ptOXlJRzFoWTNKdmJXOXNaV04xYkdVZ1pHbHpkR0Z1WTJWelhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBScGMzUmhibU5sVFdWMGNtbGpmU0JEWVd4c1ltRmpheUJ2WmlCMGFHVWdiV1ZoYzNWeVpTQmphRzl6Wlc0dVhHNGdJQ0FxSUVCdFpXMWlaWEp2WmlCTlpXRnpkWEpsY2x4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRFMWxZWE4xY21Vb2IzQjBjejg2SUdGdWVTazZJRVJwYzNSaGJtTmxUV1YwY21saklIdGNiaUFnSUNCamIyNXpkQ0JrYVdOME9pQjdJRnRyWlhrNklITjBjbWx1WjEwNlhHNGdJQ0FnSUNCN1cydGxlVEk2SUhOMGNtbHVaMTA2SUVScGMzUmhibU5sVFdWMGNtbGpJSHdnS0NodmNIUnpPaUJoYm5rcElEMCtJRVJwYzNSaGJtTmxUV1YwY21saktYMWNiaUFnSUNCOUlEMGdRWFpoYVd4aFlteGxUV1YwY21samN6dGNiaUFnSUNCcFppQW9JV1JwWTNRdWFHRnpUM2R1VUhKdmNHVnlkSGtvZEdocGN5NWtZWFJoVkhsd1pTa2dmSHdnSVdScFkzUmJkR2hwY3k1a1lYUmhWSGx3WlYwdWFHRnpUM2R1VUhKdmNHVnlkSGtvZEdocGN5NXRaWFJvYjJRcEtWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCVmJtdHViM2R1SUcxbFlYTjFjbVVnSkh0MGFHbHpMbTFsZEdodlpIMGdabTl5SUdSaGRHRWdkSGx3WlNBa2UzUm9hWE11WkdGMFlWUjVjR1Y5WUNrN1hHNGdJQ0FnY21WMGRYSnVJR2x6VFdGamNtOU5iMnhsWTNWc1pVMWxkSEpwWXloMGFHbHpMbTFsZEdodlpDa2dQMXh1SUNBZ0lDQWdLR1JwWTNSYmRHaHBjeTVrWVhSaFZIbHdaVjFiZEdocGN5NXRaWFJvYjJSZElHRnpJQ2dvYjNCMGN6b2dZVzU1S1NBOVBpQkVhWE4wWVc1alpVMWxkSEpwWXlrcEtHOXdkSE1wSURwY2JpQWdJQ0FnSUdScFkzUmJkR2hwY3k1a1lYUmhWSGx3WlYxYmRHaHBjeTV0WlhSb2IyUmRJR0Z6SUVScGMzUmhibU5sVFdWMGNtbGpPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWTNWemRHOXRJSE4wY21sdVp5QmthWE4wWVc1alpTQmllU0IwYUdVZ1oybDJaVzRnWkdGMFlTQjBlWEJsTGx4dUlDQWdLaUJBY0dGeVlXMGdlMEYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMzBnWkdGMFlWUjVjR1VnVFdWMGNtbGpKM01nWkdGMFlTQjBlWEJsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVoxdGRmU0JOWlhSeWFXTWdibUZ0WlhNZ2QyaHBZMmdnWlhod1pXTjBjeUIwYUdVZ1oybDJaVzRnWkdGMFlTQjBlWEJsWEc0Z0lDQXFJRUJ0WlcxaVpYSnZaaUJOWldGemRYSmxjbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJOWlhSeWFXTkNlVVJoZEdGVWVYQmxLR1JoZEdGVWVYQmxPaUJCZG1GcGJHRmliR1ZFWVhSaFZIbHdaWE1wT2lCemRISnBibWRiWFNCN1hHNGdJQ0FnY21WMGRYSnVJRTlpYW1WamRDNXJaWGx6S0VGMllXbHNZV0pzWlUxbGRISnBZM05iWkdGMFlWUjVjR1ZkS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJTWlhSMWNtNXpJRzFsZEhKcFl5QnVZVzFsY3lCaGRtRnBiR0ZpYkdVdVhHNGdJQ0FxSUVCdFpXMWlaWEp2WmlCTlpXRnpkWEpsY2x4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQmhkbUZwYkdGaWJHVk5aV0Z6ZFhKbGN5Z3BPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lDQWdjbVYwZFhKdUlFOWlhbVZqZEM1clpYbHpLRUYyWVdsc1lXSnNaVTFsZEhKcFkzTXBPMXh1SUNCOVhHNTlYRzRpWFgwPSIsIi8qKlxuICogQGxpY2Vuc2VcbiAqXG4gKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4vKipcbiAqIFNpbXBsZSByYW5kb20gaW50ZWdlciBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gdGF1UmFuZEludChuLCByYW5kb20pIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb20oKSAqIG4pO1xufVxuLyoqXG4gKiBTaW1wbGUgcmFuZG9tIGZsb2F0IGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YXVSYW5kKHJhbmRvbSkge1xuICAgIHJldHVybiByYW5kb20oKTtcbn1cbi8qKlxuICogQ29tcHV0ZSB0aGUgKHN0YW5kYXJkIGwyKSBub3JtIG9mIGEgdmVjdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybSh2ZWMpIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBmb3IgKGxldCBpdGVtIG9mIHZlYykge1xuICAgICAgICByZXN1bHQgKz0gaXRlbSAqKiAyO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5zcXJ0KHJlc3VsdCk7XG59XG4vKipcbiAqIENyZWF0ZXMgYW4gZW1wdHkgYXJyYXkgKGZpbGxlZCB3aXRoIHVuZGVmaW5lZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtcHR5KG4pIHtcbiAgICBjb25zdCBvdXRwdXQgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICBvdXRwdXQucHVzaCh1bmRlZmluZWQpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xufVxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IGZpbGxlZCB3aXRoIGluZGV4IHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZ2Uobikge1xuICAgIHJldHVybiBlbXB0eShuKS5tYXAoKF8sIGkpID0+IGkpO1xufVxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IGZpbGxlZCB3aXRoIGEgc3BlY2lmaWMgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxlZChuLCB2KSB7XG4gICAgcmV0dXJuIGVtcHR5KG4pLm1hcCgoKSA9PiB2KTtcbn1cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBmaWxsZWQgd2l0aCB6ZXJvc1xuICovXG5leHBvcnQgZnVuY3Rpb24gemVyb3Mobikge1xuICAgIHJldHVybiBmaWxsZWQobiwgMCk7XG59XG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgZmlsbGVkIHdpdGggb25lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gb25lcyhuKSB7XG4gICAgcmV0dXJuIGZpbGxlZChuLCAxKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBmcm9tIGEgdG8gYiwgb2YgbGVuZ3RoIGxlbiwgaW5jbHVzaXZlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5lYXIoYSwgYiwgbGVuKSB7XG4gICAgcmV0dXJuIGVtcHR5KGxlbikubWFwKChfLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiBhICsgaSAqICgoYiAtIGEpIC8gKGxlbiAtIDEpKTtcbiAgICB9KTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgc3VtIG9mIGFuIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdW0oaW5wdXQpIHtcbiAgICByZXR1cm4gaW5wdXQucmVkdWNlKChzdW0sIHZhbCkgPT4gc3VtICsgdmFsKTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgbWVhbiBvZiBhbiBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVhbihpbnB1dCkge1xuICAgIHJldHVybiBzdW0oaW5wdXQpIC8gaW5wdXQubGVuZ3RoO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGFuIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXgoaW5wdXQpIHtcbiAgICBsZXQgbWF4ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG1heCA9IGlucHV0W2ldID4gbWF4ID8gaW5wdXRbaV0gOiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBtYXg7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUgb2YgYSAyZCBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF4MmQoaW5wdXQpIHtcbiAgICBsZXQgbWF4ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaW5wdXRbaV0ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIG1heCA9IGlucHV0W2ldW2pdID4gbWF4ID8gaW5wdXRbaV1bal0gOiBtYXg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1heDtcbn1cbi8qKlxuICogR2VuZXJhdGUgblNhbXBsZXMgbWFueSBpbnRlZ2VycyBmcm9tIDAgdG8gcG9vbFNpemUgc3VjaCB0aGF0IG5vXG4gKiBpbnRlZ2VyIGlzIHNlbGVjdGVkIHR3aWNlLiBUaGUgZHVwbGljYXRpb24gY29uc3RyYWludCBpcyBhY2hpZXZlZCB2aWFcbiAqIHJlamVjdGlvbiBzYW1wbGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlamVjdGlvblNhbXBsZShuU2FtcGxlcywgcG9vbFNpemUsIHJhbmRvbSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHplcm9zKG5TYW1wbGVzKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5TYW1wbGVzOyBpKyspIHtcbiAgICAgICAgbGV0IHJlamVjdFNhbXBsZSA9IHRydWU7XG4gICAgICAgIHdoaWxlIChyZWplY3RTYW1wbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGogPSB0YXVSYW5kSW50KHBvb2xTaXplLCByYW5kb20pO1xuICAgICAgICAgICAgbGV0IGJyb2tlbiA9IGZhbHNlO1xuICAgICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBpOyBrKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaiA9PT0gcmVzdWx0W2tdKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyb2tlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghYnJva2VuKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0U2FtcGxlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRbaV0gPSBqO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG4vKipcbiAqIFJlc2hhcGVzIGEgMWQgYXJyYXkgaW50byBhIDJEIG9mIGdpdmVuIGRpbWVuc2lvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNoYXBlMmQoeCwgYSwgYikge1xuICAgIGNvbnN0IHJvd3MgPSBbXTtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgaWYgKHgubGVuZ3RoICE9PSBhICogYikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FycmF5IGRpbWVuc2lvbnMgbXVzdCBtYXRjaCBpbnB1dCBsZW5ndGguJyk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYTsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGI7IGorKykge1xuICAgICAgICAgICAgY29sLnB1c2goeFtpbmRleF0pO1xuICAgICAgICAgICAgaW5kZXggKz0gMTtcbiAgICAgICAgfVxuICAgICAgICByb3dzLnB1c2goY29sKTtcbiAgICAgICAgY291bnQgKz0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd3M7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPenM3T3pzN096czdPenM3UjBGcFFrYzdRVUZKU0RzN1IwRkZSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFZRVUZWTEVOQlFVTXNRMEZCVXl4RlFVRkZMRTFCUVdkQ08wbEJRM0JFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNReXhEUVVGRE8wRkJSVVE3TzBkQlJVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1QwRkJUeXhEUVVGRExFMUJRV2RDTzBsQlEzUkRMRTlCUVU4c1RVRkJUU3hGUVVGRkxFTkJRVU03UVVGRGJFSXNRMEZCUXp0QlFVTkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEVsQlFVa3NRMEZCUXl4SFFVRmhPMGxCUTJoRExFbEJRVWtzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTm1MRXRCUVVzc1NVRkJTU3hKUVVGSkxFbEJRVWtzUjBGQlJ5eEZRVUZGTzFGQlEzQkNMRTFCUVUwc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETzB0QlEzSkNPMGxCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUXpOQ0xFTkJRVU03UVVGRlJEczdSMEZGUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hMUVVGTExFTkJRVU1zUTBGQlV6dEpRVU0zUWl4TlFVRk5MRTFCUVUwc1IwRkJaMElzUlVGQlJTeERRVUZETzBsQlF5OUNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRE1VSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dExRVU40UWp0SlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDTEVOQlFVTTdRVUZGUkRzN1IwRkZSenRCUVVOSUxFMUJRVTBzVlVGQlZTeExRVUZMTEVOQlFVTXNRMEZCVXp0SlFVTTNRaXhQUVVGUExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOdVF5eERRVUZETzBGQlJVUTdPMGRCUlVjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVFVGQlRTeERRVUZETEVOQlFWTXNSVUZCUlN4RFFVRlRPMGxCUTNwRExFOUJRVThzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXZRaXhEUVVGRE8wRkJSVVE3TzBkQlJVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1MwRkJTeXhEUVVGRExFTkJRVk03U1VGRE4wSXNUMEZCVHl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzUkNMRU5CUVVNN1FVRkZSRHM3UjBGRlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4SlFVRkpMRU5CUVVNc1EwRkJVenRKUVVNMVFpeFBRVUZQTEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRFSXNRMEZCUXp0QlFVVkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEUxQlFVMHNRMEZCUXl4RFFVRlRMRVZCUVVVc1EwRkJVeXhGUVVGRkxFZEJRVmM3U1VGRGRFUXNUMEZCVHl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRemRDTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZGtNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETzBGQlJVUTdPMGRCUlVjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEV0QlFXVTdTVUZEYWtNc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXk5RExFTkJRVU03UVVGRlJEczdSMEZGUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hKUVVGSkxFTkJRVU1zUzBGQlpUdEpRVU5zUXl4UFFVRlBMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTI1RExFTkJRVU03UVVGRlJEczdSMEZGUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hIUVVGSExFTkJRVU1zUzBGQlpUdEpRVU5xUXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRFdpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVOeVF5eEhRVUZITEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTTdTMEZEZGtNN1NVRkRSQ3hQUVVGUExFZEJRVWNzUTBGQlF6dEJRVU5pTEVOQlFVTTdRVUZGUkRzN1IwRkZSenRCUVVOSUxFMUJRVTBzVlVGQlZTeExRVUZMTEVOQlFVTXNTMEZCYVVJN1NVRkRja01zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTFvc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEY2tNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRlRU1zUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRE8xTkJRemRETzB0QlEwWTdTVUZEUkN4UFFVRlBMRWRCUVVjc1EwRkJRenRCUVVOaUxFTkJRVU03UVVGRlJEczdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEdWQlFXVXNRMEZETjBJc1VVRkJaMElzUlVGRGFFSXNVVUZCWjBJc1JVRkRhRUlzVFVGQlowSTdTVUZGYUVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUXk5Q0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhSUVVGUkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEYWtNc1NVRkJTU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlEzaENMRTlCUVU4c1dVRkJXU3hGUVVGRk8xbEJRMjVDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdXVUZEZGtNc1NVRkJTU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETzFsQlEyNUNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlF6RkNMRWxCUVVrc1EwRkJReXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlR0dlFrRkRia0lzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXp0dlFrRkRaQ3hOUVVGTk8ybENRVU5RTzJGQlEwWTdXVUZEUkN4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRk8yZENRVU5ZTEZsQlFWa3NSMEZCUnl4TFFVRkxMRU5CUVVNN1lVRkRkRUk3V1VGRFJDeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRMlk3UzBGRFJqdEpRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMEZCUTJoQ0xFTkJRVU03UVVGRlJEczdSMEZGUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hUUVVGVExFTkJRVWtzUTBGQlRTeEZRVUZGTEVOQlFWTXNSVUZCUlN4RFFVRlRPMGxCUTNaRUxFMUJRVTBzU1VGQlNTeEhRVUZWTEVWQlFVVXNRMEZCUXp0SlFVTjJRaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEWkN4SlFVRkpMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRlpDeEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJUdFJRVU4wUWl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExESkRRVUV5UXl4RFFVRkRMRU5CUVVNN1MwRkRPVVE3U1VGRlJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUXpGQ0xFMUJRVTBzUjBGQlJ5eEhRVUZSTEVWQlFVVXNRMEZCUXp0UlFVTndRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6RkNMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRia0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXp0VFFVTmFPMUZCUTBRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm1MRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRFdqdEpRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJRc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUUd4cFkyVnVjMlZjYmlBcVhHNGdLaUJEYjNCNWNtbG5hSFFnTWpBeE9TQkhiMjluYkdVZ1RFeERMaUJCYkd3Z1VtbG5hSFJ6SUZKbGMyVnlkbVZrTGx4dUlDcGNiaUFxSUV4cFkyVnVjMlZrSUhWdVpHVnlJSFJvWlNCQmNHRmphR1VnVEdsalpXNXpaU3dnVm1WeWMybHZiaUF5TGpBZ0tIUm9aU0JjSWt4cFkyVnVjMlZjSWlrN1hHNGdLaUI1YjNVZ2JXRjVJRzV2ZENCMWMyVWdkR2hwY3lCbWFXeGxJR1Y0WTJWd2RDQnBiaUJqYjIxd2JHbGhibU5sSUhkcGRHZ2dkR2hsSUV4cFkyVnVjMlV1WEc0Z0tpQlpiM1VnYldGNUlHOWlkR0ZwYmlCaElHTnZjSGtnYjJZZ2RHaGxJRXhwWTJWdWMyVWdZWFJjYmlBcVhHNGdLaUFnSUNBZ2FIUjBjRG92TDNkM2R5NWhjR0ZqYUdVdWIzSm5MMnhwWTJWdWMyVnpMMHhKUTBWT1UwVXRNaTR3WEc0Z0tseHVJQ29nVlc1c1pYTnpJSEpsY1hWcGNtVmtJR0o1SUdGd2NHeHBZMkZpYkdVZ2JHRjNJRzl5SUdGbmNtVmxaQ0IwYnlCcGJpQjNjbWwwYVc1bkxDQnpiMlowZDJGeVpWeHVJQ29nWkdsemRISnBZblYwWldRZ2RXNWtaWElnZEdobElFeHBZMlZ1YzJVZ2FYTWdaR2x6ZEhKcFluVjBaV1FnYjI0Z1lXNGdYQ0pCVXlCSlUxd2lJRUpCVTBsVExGeHVJQ29nVjBsVVNFOVZWQ0JYUVZKU1FVNVVTVVZUSUU5U0lFTlBUa1JKVkVsUFRsTWdUMFlnUVU1WklFdEpUa1FzSUdWcGRHaGxjaUJsZUhCeVpYTnpJRzl5SUdsdGNHeHBaV1F1WEc0Z0tpQlRaV1VnZEdobElFeHBZMlZ1YzJVZ1ptOXlJSFJvWlNCemNHVmphV1pwWXlCc1lXNW5kV0ZuWlNCbmIzWmxjbTVwYm1jZ2NHVnliV2x6YzJsdmJuTWdZVzVrWEc0Z0tpQnNhVzFwZEdGMGFXOXVjeUIxYm1SbGNpQjBhR1VnVEdsalpXNXpaUzVjYmlBcUlEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4dUlDb3ZYRzVjYm1sdGNHOXlkQ0I3SUZKaGJtUnZiVVp1SUgwZ1puSnZiU0FuTGk5MWJXRndKenRjYmx4dUx5b3FYRzRnS2lCVGFXMXdiR1VnY21GdVpHOXRJR2x1ZEdWblpYSWdablZ1WTNScGIyNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhSaGRWSmhibVJKYm5Rb2Jqb2diblZ0WW1WeUxDQnlZVzVrYjIwNklGSmhibVJ2YlVadUtTQjdYRzRnSUhKbGRIVnliaUJOWVhSb0xtWnNiMjl5S0hKaGJtUnZiU2dwSUNvZ2JpazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1UybHRjR3hsSUhKaGJtUnZiU0JtYkc5aGRDQm1kVzVqZEdsdmJseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZEdGMVVtRnVaQ2h5WVc1a2IyMDZJRkpoYm1SdmJVWnVLU0I3WEc0Z0lISmxkSFZ5YmlCeVlXNWtiMjBvS1R0Y2JuMWNiaThxS2x4dUlDb2dRMjl0Y0hWMFpTQjBhR1VnS0hOMFlXNWtZWEprSUd3eUtTQnViM0p0SUc5bUlHRWdkbVZqZEc5eUxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYm05eWJTaDJaV002SUc1MWJXSmxjbHRkS1NCN1hHNGdJR3hsZENCeVpYTjFiSFFnUFNBd08xeHVJQ0JtYjNJZ0tHeGxkQ0JwZEdWdElHOW1JSFpsWXlrZ2UxeHVJQ0FnSUhKbGMzVnNkQ0FyUFNCcGRHVnRJQ29xSURJN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUUxaGRHZ3VjM0Z5ZENoeVpYTjFiSFFwTzF4dWZWeHVYRzR2S2lwY2JpQXFJRU55WldGMFpYTWdZVzRnWlcxd2RIa2dZWEp5WVhrZ0tHWnBiR3hsWkNCM2FYUm9JSFZ1WkdWbWFXNWxaQ2xjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHVnRjSFI1S0c0NklHNTFiV0psY2lrNklIVnVaR1ZtYVc1bFpGdGRJSHRjYmlBZ1kyOXVjM1FnYjNWMGNIVjBPaUIxYm1SbFptbHVaV1JiWFNBOUlGdGRPMXh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHNDdJR2tyS3lrZ2UxeHVJQ0FnSUc5MWRIQjFkQzV3ZFhOb0tIVnVaR1ZtYVc1bFpDazdYRzRnSUgxY2JpQWdjbVYwZFhKdUlHOTFkSEIxZER0Y2JuMWNibHh1THlvcVhHNGdLaUJEY21WaGRHVnpJR0Z1SUdGeWNtRjVJR1pwYkd4bFpDQjNhWFJvSUdsdVpHVjRJSFpoYkhWbGMxeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21GdVoyVW9iam9nYm5WdFltVnlLVG9nYm5WdFltVnlXMTBnZTF4dUlDQnlaWFIxY200Z1pXMXdkSGtvYmlrdWJXRndLQ2hmTENCcEtTQTlQaUJwS1R0Y2JuMWNibHh1THlvcVhHNGdLaUJEY21WaGRHVnpJR0Z1SUdGeWNtRjVJR1pwYkd4bFpDQjNhWFJvSUdFZ2MzQmxZMmxtYVdNZ2RtRnNkV1ZjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHWnBiR3hsWkNodU9pQnVkVzFpWlhJc0lIWTZJRzUxYldKbGNpazZJRzUxYldKbGNsdGRJSHRjYmlBZ2NtVjBkWEp1SUdWdGNIUjVLRzRwTG0xaGNDZ29LU0E5UGlCMktUdGNibjFjYmx4dUx5b3FYRzRnS2lCRGNtVmhkR1Z6SUdGdUlHRnljbUY1SUdacGJHeGxaQ0IzYVhSb0lIcGxjbTl6WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjZaWEp2Y3lodU9pQnVkVzFpWlhJcE9pQnVkVzFpWlhKYlhTQjdYRzRnSUhKbGRIVnliaUJtYVd4c1pXUW9iaXdnTUNrN1hHNTlYRzVjYmk4cUtseHVJQ29nUTNKbFlYUmxjeUJoYmlCaGNuSmhlU0JtYVd4c1pXUWdkMmwwYUNCdmJtVnpYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdmJtVnpLRzQ2SUc1MWJXSmxjaWs2SUc1MWJXSmxjbHRkSUh0Y2JpQWdjbVYwZFhKdUlHWnBiR3hsWkNodUxDQXhLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHWnliMjBnWVNCMGJ5QmlMQ0J2WmlCc1pXNW5kR2dnYkdWdUxDQnBibU5zZFhOcGRtVmNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUd4cGJtVmhjaWhoT2lCdWRXMWlaWElzSUdJNklHNTFiV0psY2l3Z2JHVnVPaUJ1ZFcxaVpYSXBPaUJ1ZFcxaVpYSmJYU0I3WEc0Z0lISmxkSFZ5YmlCbGJYQjBlU2hzWlc0cExtMWhjQ2dvWHl3Z2FTa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQmhJQ3NnYVNBcUlDZ29ZaUF0SUdFcElDOGdLR3hsYmlBdElERXBLVHRjYmlBZ2ZTazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1VtVjBkWEp1Y3lCMGFHVWdjM1Z0SUc5bUlHRnVJR0Z5Y21GNVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6ZFcwb2FXNXdkWFE2SUc1MWJXSmxjbHRkS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHbHVjSFYwTG5KbFpIVmpaU2dvYzNWdExDQjJZV3dwSUQwK0lITjFiU0FySUhaaGJDazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1VtVjBkWEp1Y3lCMGFHVWdiV1ZoYmlCdlppQmhiaUJoY25KaGVWeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYldWaGJpaHBibkIxZERvZ2JuVnRZbVZ5VzEwcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdjM1Z0S0dsdWNIVjBLU0F2SUdsdWNIVjBMbXhsYm1kMGFEdGNibjFjYmx4dUx5b3FYRzRnS2lCU1pYUjFjbTV6SUhSb1pTQnRZWGhwYlhWdElIWmhiSFZsSUc5bUlHRnVJR0Z5Y21GNVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ0WVhnb2FXNXdkWFE2SUc1MWJXSmxjbHRkS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdiR1YwSUcxaGVDQTlJREE3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dhVzV3ZFhRdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQnRZWGdnUFNCcGJuQjFkRnRwWFNBK0lHMWhlQ0EvSUdsdWNIVjBXMmxkSURvZ2JXRjRPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnRZWGc3WEc1OVhHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QjBhR1VnYldGNGFXMTFiU0IyWVd4MVpTQnZaaUJoSURKa0lHRnljbUY1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnRZWGd5WkNocGJuQjFkRG9nYm5WdFltVnlXMTFiWFNrNklHNTFiV0psY2lCN1hHNGdJR3hsZENCdFlYZ2dQU0F3TzF4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR2x1Y0hWMExteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhaUE5SURBN0lHb2dQQ0JwYm5CMWRGdHBYUzVzWlc1bmRHZzdJR29yS3lrZ2UxeHVJQ0FnSUNBZ2JXRjRJRDBnYVc1d2RYUmJhVjFiYWwwZ1BpQnRZWGdnUHlCcGJuQjFkRnRwWFZ0cVhTQTZJRzFoZUR0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJRzFoZUR0Y2JuMWNibHh1THlvcVhHNGdLaUJIWlc1bGNtRjBaU0J1VTJGdGNHeGxjeUJ0WVc1NUlHbHVkR1ZuWlhKeklHWnliMjBnTUNCMGJ5QndiMjlzVTJsNlpTQnpkV05vSUhSb1lYUWdibTljYmlBcUlHbHVkR1ZuWlhJZ2FYTWdjMlZzWldOMFpXUWdkSGRwWTJVdUlGUm9aU0JrZFhCc2FXTmhkR2x2YmlCamIyNXpkSEpoYVc1MElHbHpJR0ZqYUdsbGRtVmtJSFpwWVZ4dUlDb2djbVZxWldOMGFXOXVJSE5oYlhCc2FXNW5MbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NtVnFaV04wYVc5dVUyRnRjR3hsS0Z4dUlDQnVVMkZ0Y0d4bGN6b2diblZ0WW1WeUxGeHVJQ0J3YjI5c1UybDZaVG9nYm5WdFltVnlMRnh1SUNCeVlXNWtiMjA2SUZKaGJtUnZiVVp1WEc0cE9pQnVkVzFpWlhKYlhTQjdYRzRnSUdOdmJuTjBJSEpsYzNWc2RDQTlJSHBsY205ektHNVRZVzF3YkdWektUdGNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCdVUyRnRjR3hsY3pzZ2FTc3JLU0I3WEc0Z0lDQWdiR1YwSUhKbGFtVmpkRk5oYlhCc1pTQTlJSFJ5ZFdVN1hHNGdJQ0FnZDJocGJHVWdLSEpsYW1WamRGTmhiWEJzWlNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYWlBOUlIUmhkVkpoYm1SSmJuUW9jRzl2YkZOcGVtVXNJSEpoYm1SdmJTazdYRzRnSUNBZ0lDQnNaWFFnWW5KdmEyVnVJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnJJRDBnTURzZ2F5QThJR2s3SUdzckt5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FpQTlQVDBnY21WemRXeDBXMnRkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZbkp2YTJWdUlEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLQ0ZpY205clpXNHBJSHRjYmlBZ0lDQWdJQ0FnY21WcVpXTjBVMkZ0Y0d4bElEMGdabUZzYzJVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYTjFiSFJiYVYwZ1BTQnFPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z2NtVnpkV3gwTzF4dWZWeHVYRzR2S2lwY2JpQXFJRkpsYzJoaGNHVnpJR0VnTVdRZ1lYSnlZWGtnYVc1MGJ5QmhJREpFSUc5bUlHZHBkbVZ1SUdScGJXVnVjMmx2Ym5NdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5WlhOb1lYQmxNbVE4VkQ0b2VEb2dWRnRkTENCaE9pQnVkVzFpWlhJc0lHSTZJRzUxYldKbGNpazZJRlJiWFZ0ZElIdGNiaUFnWTI5dWMzUWdjbTkzY3pvZ1ZGdGRXMTBnUFNCYlhUdGNiaUFnYkdWMElHTnZkVzUwSUQwZ01EdGNiaUFnYkdWMElHbHVaR1Y0SUQwZ01EdGNibHh1SUNCcFppQW9lQzVzWlc1bmRHZ2dJVDA5SUdFZ0tpQmlLU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZEJjbkpoZVNCa2FXMWxibk5wYjI1eklHMTFjM1FnYldGMFkyZ2dhVzV3ZFhRZ2JHVnVaM1JvTGljcE8xeHVJQ0I5WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JoT3lCcEt5c3BJSHRjYmlBZ0lDQmpiMjV6ZENCamIydzZJRlJiWFNBOUlGdGRPMXh1SUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2dZanNnYWlzcktTQjdYRzRnSUNBZ0lDQmpiMnd1Y0hWemFDaDRXMmx1WkdWNFhTazdYRzRnSUNBZ0lDQnBibVJsZUNBclBTQXhPMXh1SUNBZ0lIMWNiaUFnSUNCeWIzZHpMbkIxYzJnb1kyOXNLVHRjYmlBZ0lDQmpiM1Z1ZENBclBTQXhPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnliM2R6TzF4dWZWeHVJbDE5IiwiLyoqXG4gKiBAbGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuLyoqXG4gKiAgQ29uc3RydWN0b3IgZm9yIHRoZSBoZWFwIG9iamVjdHMuIFRoZSBoZWFwcyBhcmUgdXNlZFxuICogZm9yIGFwcHJveGltYXRlIG5lYXJlc3QgbmVpZ2hib3Igc2VhcmNoLCBtYWludGFpbmluZyBhIGxpc3Qgb2YgcG90ZW50aWFsXG4gKiBuZWlnaGJvcnMgc29ydGVkIGJ5IHRoZWlyIGRpc3RhbmNlLiBXZSBhbHNvIGZsYWcgaWYgcG90ZW50aWFsIG5laWdoYm9yc1xuICogYXJlIG5ld2x5IGFkZGVkIHRvIHRoZSBsaXN0IG9yIG5vdC4gSW50ZXJuYWxseSB0aGlzIGlzIHN0b3JlZCBhc1xuICogYSBzaW5nbGUgYXJyYXk7IHRoZSBmaXJzdCBheGlzIGRldGVybWluZXMgd2hldGhlciB3ZSBhcmUgbG9va2luZyBhdCB0aGVcbiAqIGFycmF5IG9mIGNhbmRpZGF0ZSBpbmRpY2VzLCB0aGUgYXJyYXkgb2YgZGlzdGFuY2VzLCBvciB0aGUgZmxhZyBhcnJheSBmb3JcbiAqIHdoZXRoZXIgZWxlbWVudHMgYXJlIG5ldyBvciBub3QuIEVhY2ggb2YgdGhlc2UgYXJyYXlzIGFyZSBvZiBzaGFwZVxuICogKGBgblBvaW50c2BgLCBgYHNpemVgYClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VIZWFwKG5Qb2ludHMsIHNpemUpIHtcbiAgICBjb25zdCBtYWtlQXJyYXlzID0gKGZpbGxWYWx1ZSkgPT4ge1xuICAgICAgICByZXR1cm4gdXRpbHMuZW1wdHkoblBvaW50cykubWFwKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB1dGlscy5maWxsZWQoc2l6ZSwgZmlsbFZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBoZWFwID0gW107XG4gICAgaGVhcC5wdXNoKG1ha2VBcnJheXMoLTEpKTtcbiAgICBoZWFwLnB1c2gobWFrZUFycmF5cyhJbmZpbml0eSkpO1xuICAgIGhlYXAucHVzaChtYWtlQXJyYXlzKDApKTtcbiAgICByZXR1cm4gaGVhcDtcbn1cbi8qKlxuICogR2VuZXJhdGUgbl9zYW1wbGVzIG1hbnkgaW50ZWdlcnMgZnJvbSAwIHRvIHBvb2xfc2l6ZSBzdWNoIHRoYXQgbm9cbiAqIGludGVnZXIgaXMgc2VsZWN0ZWQgdHdpY2UuIFRoZSBkdXBsaWNhdGlvbiBjb25zdHJhaW50IGlzIGFjaGlldmVkIHZpYVxuICogcmVqZWN0aW9uIHNhbXBsaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVqZWN0aW9uU2FtcGxlKG5TYW1wbGVzLCBwb29sU2l6ZSwgcmFuZG9tKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuemVyb3MoblNhbXBsZXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblNhbXBsZXM7IGkrKykge1xuICAgICAgICBsZXQgcmVqZWN0U2FtcGxlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGogPSAwO1xuICAgICAgICB3aGlsZSAocmVqZWN0U2FtcGxlKSB7XG4gICAgICAgICAgICBqID0gdXRpbHMudGF1UmFuZEludChwb29sU2l6ZSwgcmFuZG9tKTtcbiAgICAgICAgICAgIGxldCBicm9rZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgaTsgaysrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGogPT09IHJlc3VsdFtrXSkge1xuICAgICAgICAgICAgICAgICAgICBicm9rZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWJyb2tlbilcbiAgICAgICAgICAgICAgICByZWplY3RTYW1wbGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRbaV0gPSBqO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBQdXNoIGEgbmV3IGVsZW1lbnQgb250byB0aGUgaGVhcC4gVGhlIGhlYXAgc3RvcmVzIHBvdGVudGlhbCBuZWlnaGJvcnNcbiAqIGZvciBlYWNoIGRhdGEgcG9pbnQuIFRoZSBgYHJvd2BgIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoaWNoIGRhdGEgcG9pbnQgd2VcbiAqIGFyZSBhZGRyZXNzaW5nLCB0aGUgYGB3ZWlnaHRgYCBkZXRlcm1pbmVzIHRoZSBkaXN0YW5jZSAoZm9yIGhlYXAgc29ydGluZyksXG4gKiB0aGUgYGBpbmRleGBgIGlzIHRoZSBlbGVtZW50IHRvIGFkZCwgYW5kIHRoZSBmbGFnIGRldGVybWluZXMgd2hldGhlciB0aGlzXG4gKiBpcyB0byBiZSBjb25zaWRlcmVkIGEgbmV3IGFkZGl0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGVhcFB1c2goaGVhcCwgcm93LCB3ZWlnaHQsIGluZGV4LCBmbGFnKSB7XG4gICAgcm93ID0gTWF0aC5mbG9vcihyb3cpO1xuICAgIGNvbnN0IGluZGljZXMgPSBoZWFwWzBdW3Jvd107XG4gICAgY29uc3Qgd2VpZ2h0cyA9IGhlYXBbMV1bcm93XTtcbiAgICBjb25zdCBpc05ldyA9IGhlYXBbMl1bcm93XTtcbiAgICBpZiAod2VpZ2h0ID49IHdlaWdodHNbMF0pIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIC8vIEJyZWFrIGlmIHdlIGFscmVhZHkgaGF2ZSB0aGlzIGVsZW1lbnQuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbmRpY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gaW5kaWNlc1tpXSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuY2hlY2tlZEhlYXBQdXNoKGhlYXAsIHJvdywgd2VpZ2h0LCBpbmRleCwgZmxhZyk7XG59XG4vKipcbiAqIFB1c2ggYSBuZXcgZWxlbWVudCBvbnRvIHRoZSBoZWFwLiBUaGUgaGVhcCBzdG9yZXMgcG90ZW50aWFsIG5laWdoYm9yc1xuICogZm9yIGVhY2ggZGF0YSBwb2ludC4gVGhlIGBgcm93YGAgcGFyYW1ldGVyIGRldGVybWluZXMgd2hpY2ggZGF0YSBwb2ludCB3ZVxuICogYXJlIGFkZHJlc3NpbmcsIHRoZSBgYHdlaWdodGBgIGRldGVybWluZXMgdGhlIGRpc3RhbmNlIChmb3IgaGVhcCBzb3J0aW5nKSxcbiAqIHRoZSBgYGluZGV4YGAgaXMgdGhlIGVsZW1lbnQgdG8gYWRkLCBhbmQgdGhlIGZsYWcgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXNcbiAqIGlzIHRvIGJlIGNvbnNpZGVyZWQgYSBuZXcgYWRkaXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmNoZWNrZWRIZWFwUHVzaChoZWFwLCByb3csIHdlaWdodCwgaW5kZXgsIGZsYWcpIHtcbiAgICBjb25zdCBpbmRpY2VzID0gaGVhcFswXVtyb3ddO1xuICAgIGNvbnN0IHdlaWdodHMgPSBoZWFwWzFdW3Jvd107XG4gICAgY29uc3QgaXNOZXcgPSBoZWFwWzJdW3Jvd107XG4gICAgaWYgKHdlaWdodCA+PSB3ZWlnaHRzWzBdKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvLyBJbnNlcnQgdmFsIGF0IHBvc2l0aW9uIHplcm9cbiAgICB3ZWlnaHRzWzBdID0gd2VpZ2h0O1xuICAgIGluZGljZXNbMF0gPSBpbmRleDtcbiAgICBpc05ld1swXSA9IGZsYWc7XG4gICAgLy8gRGVzY2VuZCB0aGUgaGVhcCwgc3dhcHBpbmcgdmFsdWVzIHVudGlsIHRoZSBtYXggaGVhcCBjcml0ZXJpb24gaXMgbWV0XG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBpU3dhcCA9IDA7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgaWMxID0gMiAqIGkgKyAxO1xuICAgICAgICBjb25zdCBpYzIgPSBpYzEgKyAxO1xuICAgICAgICBjb25zdCBoZWFwU2hhcGUyID0gaGVhcFswXVswXS5sZW5ndGg7XG4gICAgICAgIGlmIChpYzEgPj0gaGVhcFNoYXBlMikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaWMyID49IGhlYXBTaGFwZTIpIHtcbiAgICAgICAgICAgIGlmICh3ZWlnaHRzW2ljMV0gPiB3ZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBpU3dhcCA9IGljMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHdlaWdodHNbaWMxXSA+PSB3ZWlnaHRzW2ljMl0pIHtcbiAgICAgICAgICAgIGlmICh3ZWlnaHQgPCB3ZWlnaHRzW2ljMV0pIHtcbiAgICAgICAgICAgICAgICBpU3dhcCA9IGljMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdlaWdodCA8IHdlaWdodHNbaWMyXSkge1xuICAgICAgICAgICAgICAgIGlTd2FwID0gaWMyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgd2VpZ2h0c1tpXSA9IHdlaWdodHNbaVN3YXBdO1xuICAgICAgICBpbmRpY2VzW2ldID0gaW5kaWNlc1tpU3dhcF07XG4gICAgICAgIGlzTmV3W2ldID0gaXNOZXdbaVN3YXBdO1xuICAgICAgICBpID0gaVN3YXA7XG4gICAgfVxuICAgIHdlaWdodHNbaV0gPSB3ZWlnaHQ7XG4gICAgaW5kaWNlc1tpXSA9IGluZGV4O1xuICAgIGlzTmV3W2ldID0gZmxhZztcbiAgICByZXR1cm4gMTtcbn1cbi8qKlxuICogQnVpbGQgYSBoZWFwIG9mIGNhbmRpZGF0ZSBuZWlnaGJvcnMgZm9yIG5lYXJlc3QgbmVpZ2hib3IgZGVzY2VudC4gRm9yXG4gKiBlYWNoIHZlcnRleCB0aGUgY2FuZGlkYXRlIG5laWdoYm9ycyBhcmUgYW55IGN1cnJlbnQgbmVpZ2hib3JzLCBhbmQgYW55XG4gKiB2ZXJ0aWNlcyB0aGF0IGhhdmUgdGhlIHZlcnRleCBhcyBvbmUgb2YgdGhlaXIgbmVhcmVzdCBuZWlnaGJvcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENhbmRpZGF0ZXMoY3VycmVudEdyYXBoLCBuVmVydGljZXMsIG5OZWlnaGJvcnMsIG1heENhbmRpZGF0ZXMsIHJhbmRvbSkge1xuICAgIGNvbnN0IGNhbmRpZGF0ZU5laWdoYm9ycyA9IG1ha2VIZWFwKG5WZXJ0aWNlcywgbWF4Q2FuZGlkYXRlcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuVmVydGljZXM7IGkrKykge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG5OZWlnaGJvcnM7IGorKykge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRHcmFwaFswXVtpXVtqXSA8IDApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IGN1cnJlbnRHcmFwaFswXVtpXVtqXTtcbiAgICAgICAgICAgIGNvbnN0IGlzbiA9IGN1cnJlbnRHcmFwaFsyXVtpXVtqXTtcbiAgICAgICAgICAgIGNvbnN0IGQgPSB1dGlscy50YXVSYW5kKHJhbmRvbSk7XG4gICAgICAgICAgICBoZWFwUHVzaChjYW5kaWRhdGVOZWlnaGJvcnMsIGksIGQsIGlkeCwgaXNuKTtcbiAgICAgICAgICAgIGhlYXBQdXNoKGNhbmRpZGF0ZU5laWdoYm9ycywgaWR4LCBkLCBpLCBpc24pO1xuICAgICAgICAgICAgY3VycmVudEdyYXBoWzJdW2ldW2pdID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FuZGlkYXRlTmVpZ2hib3JzO1xufVxuLyoqXG4gKiBHaXZlbiBhbiBhcnJheSBvZiBoZWFwcyAob2YgaW5kaWNlcyBhbmQgd2VpZ2h0cyksIHVucGFjayB0aGUgaGVhcFxuICogb3V0IHRvIGdpdmUgYW5kIGFycmF5IG9mIHNvcnRlZCBsaXN0cyBvZiBpbmRpY2VzIGFuZCB3ZWlnaHRzIGJ5IGluY3JlYXNpbmdcbiAqIHdlaWdodC4gVGhpcyBpcyBlZmZlY3RpdmVseSBqdXN0IHRoZSBzZWNvbmQgaGFsZiBvZiBoZWFwIHNvcnQgKHRoZSBmaXJzdFxuICogaGFsZiBub3QgYmVpbmcgcmVxdWlyZWQgc2luY2Ugd2UgYWxyZWFkeSBoYXZlIHRoZSBkYXRhIGluIGEgaGVhcCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWhlYXBTb3J0KGhlYXApIHtcbiAgICBjb25zdCBpbmRpY2VzID0gaGVhcFswXTtcbiAgICBjb25zdCB3ZWlnaHRzID0gaGVhcFsxXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluZGljZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaW5kSGVhcCA9IGluZGljZXNbaV07XG4gICAgICAgIGNvbnN0IGRpc3RIZWFwID0gd2VpZ2h0c1tpXTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpbmRIZWFwLmxlbmd0aCAtIDE7IGorKykge1xuICAgICAgICAgICAgY29uc3QgaW5kSGVhcEluZGV4ID0gaW5kSGVhcC5sZW5ndGggLSBqIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RIZWFwSW5kZXggPSBkaXN0SGVhcC5sZW5ndGggLSBqIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IHRlbXAxID0gaW5kSGVhcFswXTtcbiAgICAgICAgICAgIGluZEhlYXBbMF0gPSBpbmRIZWFwW2luZEhlYXBJbmRleF07XG4gICAgICAgICAgICBpbmRIZWFwW2luZEhlYXBJbmRleF0gPSB0ZW1wMTtcbiAgICAgICAgICAgIGNvbnN0IHRlbXAyID0gZGlzdEhlYXBbMF07XG4gICAgICAgICAgICBkaXN0SGVhcFswXSA9IGRpc3RIZWFwW2Rpc3RIZWFwSW5kZXhdO1xuICAgICAgICAgICAgZGlzdEhlYXBbZGlzdEhlYXBJbmRleF0gPSB0ZW1wMjtcbiAgICAgICAgICAgIHNpZnREb3duKGRpc3RIZWFwLCBpbmRIZWFwLCBkaXN0SGVhcEluZGV4LCAwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBpbmRpY2VzLCB3ZWlnaHRzIH07XG59XG4vKipcbiAqIFJlc3RvcmUgdGhlIGhlYXAgcHJvcGVydHkgZm9yIGEgaGVhcCB3aXRoIGFuIG91dCBvZiBwbGFjZSBlbGVtZW50XG4gKiBhdCBwb3NpdGlvbiBgYGVsdGBgLiBUaGlzIHdvcmtzIHdpdGggYSBoZWFwIHBhaXIgd2hlcmUgaGVhcDEgY2Fycmllc1xuICogdGhlIHdlaWdodHMgYW5kIGhlYXAyIGhvbGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzLlxuICovXG5mdW5jdGlvbiBzaWZ0RG93bihoZWFwMSwgaGVhcDIsIGNlaWxpbmcsIGVsdCkge1xuICAgIHdoaWxlIChlbHQgKiAyICsgMSA8IGNlaWxpbmcpIHtcbiAgICAgICAgY29uc3QgbGVmdENoaWxkID0gZWx0ICogMiArIDE7XG4gICAgICAgIGNvbnN0IHJpZ2h0Q2hpbGQgPSBsZWZ0Q2hpbGQgKyAxO1xuICAgICAgICBsZXQgc3dhcCA9IGVsdDtcbiAgICAgICAgaWYgKGhlYXAxW3N3YXBdIDwgaGVhcDFbbGVmdENoaWxkXSkge1xuICAgICAgICAgICAgc3dhcCA9IGxlZnRDaGlsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmlnaHRDaGlsZCA8IGNlaWxpbmcgJiYgaGVhcDFbc3dhcF0gPCBoZWFwMVtyaWdodENoaWxkXSkge1xuICAgICAgICAgICAgc3dhcCA9IHJpZ2h0Q2hpbGQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN3YXAgPT09IGVsdCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wMSA9IGhlYXAxW2VsdF07XG4gICAgICAgICAgICBoZWFwMVtlbHRdID0gaGVhcDFbc3dhcF07XG4gICAgICAgICAgICBoZWFwMVtzd2FwXSA9IHRlbXAxO1xuICAgICAgICAgICAgY29uc3QgdGVtcDIgPSBoZWFwMltlbHRdO1xuICAgICAgICAgICAgaGVhcDJbZWx0XSA9IGhlYXAyW3N3YXBdO1xuICAgICAgICAgICAgaGVhcDJbc3dhcF0gPSB0ZW1wMjtcbiAgICAgICAgICAgIGVsdCA9IHN3YXA7XG4gICAgICAgIH1cbiAgICB9XG59XG4vKipcbiAqIFNlYXJjaCB0aGUgaGVhcCBmb3IgdGhlIHNtYWxsZXN0IGVsZW1lbnQgdGhhdCBpcyBzdGlsbCBmbGFnZ2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc21hbGxlc3RGbGFnZ2VkKGhlYXAsIHJvdykge1xuICAgIGNvbnN0IGluZCA9IGhlYXBbMF1bcm93XTtcbiAgICBjb25zdCBkaXN0ID0gaGVhcFsxXVtyb3ddO1xuICAgIGNvbnN0IGZsYWcgPSBoZWFwWzJdW3Jvd107XG4gICAgbGV0IG1pbkRpc3QgPSBJbmZpbml0eTtcbiAgICBsZXQgcmVzdWx0SW5kZXggPSAtMTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA+IGluZC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoZmxhZ1tpXSA9PT0gMSAmJiBkaXN0W2ldIDwgbWluRGlzdCkge1xuICAgICAgICAgICAgbWluRGlzdCA9IGRpc3RbaV07XG4gICAgICAgICAgICByZXN1bHRJbmRleCA9IGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHJlc3VsdEluZGV4ID49IDApIHtcbiAgICAgICAgZmxhZ1tyZXN1bHRJbmRleF0gPSAwO1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihpbmRbcmVzdWx0SW5kZXhdKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhR1ZoY0M1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbWhsWVhBdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUU3T3pzN096czdPenM3T3pzN096czdPMGRCYVVKSE8wRkJNa05JTEU5QlFVOHNTMEZCU3l4TFFVRkxMRTFCUVUwc1UwRkJVeXhEUVVGRE8wRkJTV3BET3pzN096czdPenM3UjBGVFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4UlFVRlJMRU5CUVVNc1QwRkJaU3hGUVVGRkxFbEJRVms3U1VGRGNFUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1EwRkJReXhUUVVGcFFpeEZRVUZGTEVWQlFVVTdVVUZEZGtNc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVU3V1VGRGJrTXNUMEZCVHl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTjJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTXNRMEZCUXp0SlFVVkdMRTFCUVUwc1NVRkJTU3hIUVVGVExFVkJRVVVzUTBGQlF6dEpRVU4wUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRNVUlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5vUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNwQ0xFOUJRVThzU1VGQlNTeERRVUZETzBGQlEyUXNRMEZCUXp0QlFVVkVPenM3TzBkQlNVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1pVRkJaU3hEUVVNM1FpeFJRVUZuUWl4RlFVTm9RaXhSUVVGblFpeEZRVU5vUWl4TlFVRm5RanRKUVVWb1FpeE5RVUZOTEUxQlFVMHNSMEZCUnl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBsQlEzSkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRGFrTXNTVUZCU1N4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM2hDTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOV0xFOUJRVThzV1VGQldTeEZRVUZGTzFsQlEyNUNMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRaUVVOMlF5eEpRVUZKTEUxQlFVMHNSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRia0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkRNVUlzU1VGQlNTeERRVUZETEV0QlFVc3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRk8yOUNRVU51UWl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRE8yOUNRVU5rTEUxQlFVMDdhVUpCUTFBN1lVRkRSanRaUVVORUxFbEJRVWtzUTBGQlF5eE5RVUZOTzJkQ1FVRkZMRmxCUVZrc1IwRkJSeXhMUVVGTExFTkJRVU03VTBGRGJrTTdVVUZEUkN4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzB0QlEyWTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPenM3T3p0SFFVMUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxGRkJRVkVzUTBGRGRFSXNTVUZCVlN4RlFVTldMRWRCUVZjc1JVRkRXQ3hOUVVGakxFVkJRMlFzUzBGQllTeEZRVU5pTEVsQlFWazdTVUZGV2l4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTjBRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE4wSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpkQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVVV6UWl4SlFVRkpMRTFCUVUwc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdVVUZEZUVJc1QwRkJUeXhEUVVGRExFTkJRVU03UzBGRFZqdEpRVVZFTEhsRFFVRjVRenRKUVVONlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVOMlF5eEpRVUZKTEV0QlFVc3NTMEZCU3l4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRGVFSXNUMEZCVHl4RFFVRkRMRU5CUVVNN1UwRkRWanRMUVVOR08wbEJSVVFzVDBGQlR5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRE0wUXNRMEZCUXp0QlFVVkVPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzVlVGQlZTeHBRa0ZCYVVJc1EwRkRMMElzU1VGQlZTeEZRVU5XTEVkQlFWY3NSVUZEV0N4TlFVRmpMRVZCUTJRc1MwRkJZU3hGUVVOaUxFbEJRVms3U1VGRldpeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETjBJc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRemRDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVVXpRaXhKUVVGSkxFMUJRVTBzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN1VVRkRlRUlzVDBGQlR5eERRVUZETEVOQlFVTTdTMEZEVmp0SlFVVkVMRGhDUVVFNFFqdEpRVU01UWl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETzBsQlEzQkNMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTTdTVUZEYmtJc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVVm9RaXgzUlVGQmQwVTdTVUZEZUVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlExWXNTVUZCU1N4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMlFzVDBGQlR5eEpRVUZKTEVWQlFVVTdVVUZEV0N4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjBRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUlhCQ0xFMUJRVTBzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZEY2tNc1NVRkJTU3hIUVVGSExFbEJRVWtzVlVGQlZTeEZRVUZGTzFsQlEzSkNMRTFCUVUwN1UwRkRVRHRoUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEZWQlFWVXNSVUZCUlR0WlFVTTFRaXhKUVVGSkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVN1owSkJRM3BDTEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNN1lVRkRZanRwUWtGQlRUdG5Ra0ZEVEN4TlFVRk5PMkZCUTFBN1UwRkRSanRoUVVGTkxFbEJRVWtzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU4yUXl4SlFVRkpMRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUTNwQ0xFdEJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTTdZVUZEWWp0cFFrRkJUVHRuUWtGRFRDeE5RVUZOTzJGQlExQTdVMEZEUmp0aFFVRk5PMWxCUTB3c1NVRkJTU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMmRDUVVONlFpeExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRPMkZCUTJJN2FVSkJRVTA3WjBKQlEwd3NUVUZCVFR0aFFVTlFPMU5CUTBZN1VVRkZSQ3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRelZDTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETlVJc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVWNFFpeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRPMHRCUTFnN1NVRkZSQ3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRPMGxCUTNCQ0xFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1NVRkRia0lzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOb1FpeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTllMRU5CUVVNN1FVRkZSRHM3T3p0SFFVbEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHVkJRV1VzUTBGRE4wSXNXVUZCYTBJc1JVRkRiRUlzVTBGQmFVSXNSVUZEYWtJc1ZVRkJhMElzUlVGRGJFSXNZVUZCY1VJc1JVRkRja0lzVFVGQlowSTdTVUZGYUVJc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4UlFVRlJMRU5CUVVNc1UwRkJVeXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVUZETzBsQlF6bEVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4VFFVRlRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRGJFTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZWQlFWVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVOdVF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVN1owSkJRemRDTEZOQlFWTTdZVUZEVmp0WlFVTkVMRTFCUVUwc1IwRkJSeXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5zUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGJFTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTm9ReXhSUVVGUkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkROME1zVVVGQlVTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRemRETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1UwRkRNMEk3UzBGRFJqdEpRVU5FTEU5QlFVOHNhMEpCUVd0Q0xFTkJRVU03UVVGRE5VSXNRMEZCUXp0QlFVVkVPenM3T3p0SFFVdEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxGVkJRVlVzUTBGQlF5eEpRVUZWTzBsQlEyNURMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZlRUlzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRka01zVFVGQlRTeFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRek5DTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVUxUWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZETTBNc1RVRkJUU3haUVVGWkxFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRelZETEUxQlFVMHNZVUZCWVN4SFFVRkhMRkZCUVZFc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVVTVReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRla0lzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETzFsQlJUbENMRTFCUVUwc1MwRkJTeXhIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhRaXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xbEJRM1JETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRmFFTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUXk5RE8wdEJRMFk3U1VGRFJDeFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRemxDTEVOQlFVTTdRVUZGUkRzN096dEhRVWxITzBGQlEwZ3NVMEZCVXl4UlFVRlJMRU5CUTJZc1MwRkJaU3hGUVVObUxFdEJRV1VzUlVGRFppeFBRVUZsTEVWQlEyWXNSMEZCVnp0SlFVVllMRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4RlFVRkZPMUZCUXpWQ0xFMUJRVTBzVTBGQlV5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRemxDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFrTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRE8xRkJSV1lzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTzFsQlEyeERMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU03VTBGRGJFSTdVVUZEUkN4SlFVRkpMRlZCUVZVc1IwRkJSeXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJUdFpRVU16UkN4SlFVRkpMRWRCUVVjc1ZVRkJWU3hEUVVGRE8xTkJRMjVDTzFGQlJVUXNTVUZCU1N4SlFVRkpMRXRCUVVzc1IwRkJSeXhGUVVGRk8xbEJRMmhDTEUxQlFVMDdVMEZEVUR0aFFVRk5PMWxCUTB3c1RVRkJUU3hMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNwQ0xFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRGVrSXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF6dFpRVVZ3UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEZWtJc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVONlFpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRE8xbEJRM0JDTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1UwRkRXanRMUVVOR08wRkJRMGdzUTBGQlF6dEJRVVZFT3p0SFFVVkhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHVkJRV1VzUTBGQlF5eEpRVUZWTEVWQlFVVXNSMEZCVnp0SlFVTnlSQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVrSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpGQ0xFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVVV4UWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhSUVVGUkxFTkJRVU03U1VGRGRrSXNTVUZCU1N4WFFVRlhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmNrSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRGJrTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhQUVVGUExFVkJRVVU3V1VGRGRFTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5zUWl4WFFVRlhMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRMnBDTzB0QlEwWTdTVUZGUkN4SlFVRkpMRmRCUVZjc1NVRkJTU3hEUVVGRExFVkJRVVU3VVVGRGNFSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU4wUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRja003VTBGQlRUdFJRVU5NTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRXRHRCUVVOSUxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCc2FXTmxibk5sWEc0Z0tseHVJQ29nUTI5d2VYSnBaMmgwSURJd01Ua2dSMjl2WjJ4bElFeE1ReTRnUVd4c0lGSnBaMmgwY3lCU1pYTmxjblpsWkM1Y2JpQXFYRzRnS2lCTWFXTmxibk5sWkNCMWJtUmxjaUIwYUdVZ1FYQmhZMmhsSUV4cFkyVnVjMlVzSUZabGNuTnBiMjRnTWk0d0lDaDBhR1VnWENKTWFXTmxibk5sWENJcE8xeHVJQ29nZVc5MUlHMWhlU0J1YjNRZ2RYTmxJSFJvYVhNZ1ptbHNaU0JsZUdObGNIUWdhVzRnWTI5dGNHeHBZVzVqWlNCM2FYUm9JSFJvWlNCTWFXTmxibk5sTGx4dUlDb2dXVzkxSUcxaGVTQnZZblJoYVc0Z1lTQmpiM0I1SUc5bUlIUm9aU0JNYVdObGJuTmxJR0YwWEc0Z0tseHVJQ29nSUNBZ0lHaDBkSEE2THk5M2QzY3VZWEJoWTJobExtOXlaeTlzYVdObGJuTmxjeTlNU1VORlRsTkZMVEl1TUZ4dUlDcGNiaUFxSUZWdWJHVnpjeUJ5WlhGMWFYSmxaQ0JpZVNCaGNIQnNhV05oWW14bElHeGhkeUJ2Y2lCaFozSmxaV1FnZEc4Z2FXNGdkM0pwZEdsdVp5d2djMjltZEhkaGNtVmNiaUFxSUdScGMzUnlhV0oxZEdWa0lIVnVaR1Z5SUhSb1pTQk1hV05sYm5ObElHbHpJR1JwYzNSeWFXSjFkR1ZrSUc5dUlHRnVJRndpUVZNZ1NWTmNJaUJDUVZOSlV5eGNiaUFxSUZkSlZFaFBWVlFnVjBGU1VrRk9WRWxGVXlCUFVpQkRUMDVFU1ZSSlQwNVRJRTlHSUVGT1dTQkxTVTVFTENCbGFYUm9aWElnWlhod2NtVnpjeUJ2Y2lCcGJYQnNhV1ZrTGx4dUlDb2dVMlZsSUhSb1pTQk1hV05sYm5ObElHWnZjaUIwYUdVZ2MzQmxZMmxtYVdNZ2JHRnVaM1ZoWjJVZ1oyOTJaWEp1YVc1bklIQmxjbTFwYzNOcGIyNXpJR0Z1WkZ4dUlDb2diR2x0YVhSaGRHbHZibk1nZFc1a1pYSWdkR2hsSUV4cFkyVnVjMlV1WEc0Z0tpQTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpQXFMMXh1WEc0dktpcGNiaUFxSUZSb2FYTWdhWE1nWVNCS1lYWmhVMk55YVhCMElISmxhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdWVTFCVUNBb2IzSnBaMmx1WVd3Z2JHbGpaVzV6WlNCaVpXeHZkeWtzSUdaeWIyMWNiaUFxSUhSb1pTQndlWFJvYjI0Z2FXMXdiR1Z0Wlc1MFlYUnBiMjRnWm05MWJtUWdZWFFnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJ4dFkybHVibVZ6TDNWdFlYQXVYRzRnS2x4dUlDb2dRR0YxZEdodmNpQmhibVI1WTI5bGJtVnVRR2R2YjJkc1pTNWpiMjBnS0VGdVpIa2dRMjlsYm1WdUtWeHVJQ292WEc1Y2JpOHFLbHh1SUNvZ1FHeHBZMlZ1YzJWY2JpQXFJRUpUUkNBekxVTnNZWFZ6WlNCTWFXTmxibk5sWEc0Z0tseHVJQ29nUTI5d2VYSnBaMmgwSUNoaktTQXlNREUzTENCTVpXeGhibVFnVFdOSmJtNWxjMXh1SUNvZ1FXeHNJSEpwWjJoMGN5QnlaWE5sY25abFpDNWNiaUFxWEc0Z0tpQlNaV1JwYzNSeWFXSjFkR2x2YmlCaGJtUWdkWE5sSUdsdUlITnZkWEpqWlNCaGJtUWdZbWx1WVhKNUlHWnZjbTF6TENCM2FYUm9JRzl5SUhkcGRHaHZkWFJjYmlBcUlHMXZaR2xtYVdOaGRHbHZiaXdnWVhKbElIQmxjbTFwZEhSbFpDQndjbTkyYVdSbFpDQjBhR0YwSUhSb1pTQm1iMnhzYjNkcGJtY2dZMjl1WkdsMGFXOXVjeUJoY21VZ2JXVjBPbHh1SUNwY2JpQXFJQ29nVW1Wa2FYTjBjbWxpZFhScGIyNXpJRzltSUhOdmRYSmpaU0JqYjJSbElHMTFjM1FnY21WMFlXbHVJSFJvWlNCaFltOTJaU0JqYjNCNWNtbG5hSFFnYm05MGFXTmxMQ0IwYUdselhHNGdLaUFnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVJQ3BjYmlBcUlDb2dVbVZrYVhOMGNtbGlkWFJwYjI1eklHbHVJR0pwYm1GeWVTQm1iM0p0SUcxMWMzUWdjbVZ3Y205a2RXTmxJSFJvWlNCaFltOTJaU0JqYjNCNWNtbG5hSFFnYm05MGFXTmxMRnh1SUNvZ0lDQjBhR2x6SUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUlHbHVJSFJvWlNCa2IyTjFiV1Z1ZEdGMGFXOXVYRzRnS2lBZ0lHRnVaQzl2Y2lCdmRHaGxjaUJ0WVhSbGNtbGhiSE1nY0hKdmRtbGtaV1FnZDJsMGFDQjBhR1VnWkdsemRISnBZblYwYVc5dUxseHVJQ3BjYmlBcUlDb2dUbVZwZEdobGNpQjBhR1VnYm1GdFpTQnZaaUIwYUdVZ1kyOXdlWEpwWjJoMElHaHZiR1JsY2lCdWIzSWdkR2hsSUc1aGJXVnpJRzltSUdsMGMxeHVJQ29nSUNCamIyNTBjbWxpZFhSdmNuTWdiV0Y1SUdKbElIVnpaV1FnZEc4Z1pXNWtiM0p6WlNCdmNpQndjbTl0YjNSbElIQnliMlIxWTNSeklHUmxjbWwyWldRZ1puSnZiVnh1SUNvZ0lDQjBhR2x6SUhOdlpuUjNZWEpsSUhkcGRHaHZkWFFnYzNCbFkybG1hV01nY0hKcGIzSWdkM0pwZEhSbGJpQndaWEp0YVhOemFXOXVMbHh1SUNwY2JpQXFJRlJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNGdLaUJCVGtRZ1FVNVpJRVZZVUZKRlUxTWdUMUlnU1UxUVRFbEZSQ0JYUVZKU1FVNVVTVVZUTENCSlRrTk1WVVJKVGtjc0lFSlZWQ0JPVDFRZ1RFbE5TVlJGUkNCVVR5d2dWRWhGWEc0Z0tpQkpUVkJNU1VWRUlGZEJVbEpCVGxSSlJWTWdUMFlnVFVWU1EwaEJUbFJCUWtsTVNWUlpJRUZPUkNCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVWtWY2JpQXFJRVJKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JpQXFJRVpQVWlCQlRsa2dSRWxTUlVOVUxDQkpUa1JKVWtWRFZDd2dTVTVEU1VSRlRsUkJUQ3dnVTFCRlEwbEJUQ3dnUlZoRlRWQk1RVkpaTENCUFVpQkRUMDVUUlZGVlJVNVVTVUZNWEc0Z0tpQkVRVTFCUjBWVElDaEpUa05NVlVSSlRrY3NJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeXdnVUZKUFExVlNSVTFGVGxRZ1QwWWdVMVZDVTFSSlZGVlVSU0JIVDA5RVV5QlBVbHh1SUNvZ1UwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNiaUFxSUVOQlZWTkZSQ0JCVGtRZ1QwNGdRVTVaSUZSSVJVOVNXU0JQUmlCTVNVRkNTVXhKVkZrc0lGZElSVlJJUlZJZ1NVNGdRMDlPVkZKQlExUXNJRk5VVWtsRFZDQk1TVUZDU1V4SlZGa3NYRzRnS2lCUFVpQlVUMUpVSUNoSlRrTk1WVVJKVGtjZ1RrVkhURWxIUlU1RFJTQlBVaUJQVkVoRlVsZEpVMFVwSUVGU1NWTkpUa2NnU1U0Z1FVNVpJRmRCV1NCUFZWUWdUMFlnVkVoRklGVlRSVnh1SUNvZ1QwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmlBcUwxeHVYRzVwYlhCdmNuUWdleUJTWVc1a2IyMUdiaUI5SUdaeWIyMGdKeTR2ZFcxaGNDYzdYRzVwYlhCdmNuUWdLaUJoY3lCMWRHbHNjeUJtY205dElDY3VMM1YwYVd4ekp6dGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1NHVmhjQ0E5SUc1MWJXSmxjbHRkVzExYlhUdGNibHh1THlvcVhHNGdLaUFnUTI5dWMzUnlkV04wYjNJZ1ptOXlJSFJvWlNCb1pXRndJRzlpYW1WamRITXVJRlJvWlNCb1pXRndjeUJoY21VZ2RYTmxaRnh1SUNvZ1ptOXlJR0Z3Y0hKdmVHbHRZWFJsSUc1bFlYSmxjM1FnYm1WcFoyaGliM0lnYzJWaGNtTm9MQ0J0WVdsdWRHRnBibWx1WnlCaElHeHBjM1FnYjJZZ2NHOTBaVzUwYVdGc1hHNGdLaUJ1WldsbmFHSnZjbk1nYzI5eWRHVmtJR0o1SUhSb1pXbHlJR1JwYzNSaGJtTmxMaUJYWlNCaGJITnZJR1pzWVdjZ2FXWWdjRzkwWlc1MGFXRnNJRzVsYVdkb1ltOXljMXh1SUNvZ1lYSmxJRzVsZDJ4NUlHRmtaR1ZrSUhSdklIUm9aU0JzYVhOMElHOXlJRzV2ZEM0Z1NXNTBaWEp1WVd4c2VTQjBhR2x6SUdseklITjBiM0psWkNCaGMxeHVJQ29nWVNCemFXNW5iR1VnWVhKeVlYazdJSFJvWlNCbWFYSnpkQ0JoZUdseklHUmxkR1Z5YldsdVpYTWdkMmhsZEdobGNpQjNaU0JoY21VZ2JHOXZhMmx1WnlCaGRDQjBhR1ZjYmlBcUlHRnljbUY1SUc5bUlHTmhibVJwWkdGMFpTQnBibVJwWTJWekxDQjBhR1VnWVhKeVlYa2diMllnWkdsemRHRnVZMlZ6TENCdmNpQjBhR1VnWm14aFp5QmhjbkpoZVNCbWIzSmNiaUFxSUhkb1pYUm9aWElnWld4bGJXVnVkSE1nWVhKbElHNWxkeUJ2Y2lCdWIzUXVJRVZoWTJnZ2IyWWdkR2hsYzJVZ1lYSnlZWGx6SUdGeVpTQnZaaUJ6YUdGd1pWeHVJQ29nS0dCZ2JsQnZhVzUwYzJCZ0xDQmdZSE5wZW1WZ1lDbGNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUcxaGEyVklaV0Z3S0c1UWIybHVkSE02SUc1MWJXSmxjaXdnYzJsNlpUb2diblZ0WW1WeUtUb2dTR1ZoY0NCN1hHNGdJR052Ym5OMElHMWhhMlZCY25KaGVYTWdQU0FvWm1sc2JGWmhiSFZsT2lCdWRXMWlaWElwSUQwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZFhScGJITXVaVzF3ZEhrb2JsQnZhVzUwY3lrdWJXRndLQ2dwSUQwK0lIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMWRHbHNjeTVtYVd4c1pXUW9jMmw2WlN3Z1ptbHNiRlpoYkhWbEtUdGNiaUFnSUNCOUtUdGNiaUFnZlR0Y2JseHVJQ0JqYjI1emRDQm9aV0Z3T2lCSVpXRndJRDBnVzEwN1hHNGdJR2hsWVhBdWNIVnphQ2h0WVd0bFFYSnlZWGx6S0MweEtTazdYRzRnSUdobFlYQXVjSFZ6YUNodFlXdGxRWEp5WVhsektFbHVabWx1YVhSNUtTazdYRzRnSUdobFlYQXVjSFZ6YUNodFlXdGxRWEp5WVhsektEQXBLVHRjYmlBZ2NtVjBkWEp1SUdobFlYQTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1IyVnVaWEpoZEdVZ2JsOXpZVzF3YkdWeklHMWhibmtnYVc1MFpXZGxjbk1nWm5KdmJTQXdJSFJ2SUhCdmIyeGZjMmw2WlNCemRXTm9JSFJvWVhRZ2JtOWNiaUFxSUdsdWRHVm5aWElnYVhNZ2MyVnNaV04wWldRZ2RIZHBZMlV1SUZSb1pTQmtkWEJzYVdOaGRHbHZiaUJqYjI1emRISmhhVzUwSUdseklHRmphR2xsZG1Wa0lIWnBZVnh1SUNvZ2NtVnFaV04wYVc5dUlITmhiWEJzYVc1bkxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21WcVpXTjBhVzl1VTJGdGNHeGxLRnh1SUNCdVUyRnRjR3hsY3pvZ2JuVnRZbVZ5TEZ4dUlDQndiMjlzVTJsNlpUb2diblZ0WW1WeUxGeHVJQ0J5WVc1a2IyMDZJRkpoYm1SdmJVWnVYRzRwSUh0Y2JpQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ2RYUnBiSE11ZW1WeWIzTW9ibE5oYlhCc1pYTXBPMXh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHNVRZVzF3YkdWek95QnBLeXNwSUh0Y2JpQWdJQ0JzWlhRZ2NtVnFaV04wVTJGdGNHeGxJRDBnZEhKMVpUdGNiaUFnSUNCc1pYUWdhaUE5SURBN1hHNGdJQ0FnZDJocGJHVWdLSEpsYW1WamRGTmhiWEJzWlNrZ2UxeHVJQ0FnSUNBZ2FpQTlJSFYwYVd4ekxuUmhkVkpoYm1SSmJuUW9jRzl2YkZOcGVtVXNJSEpoYm1SdmJTazdYRzRnSUNBZ0lDQnNaWFFnWW5KdmEyVnVJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnJJRDBnTURzZ2F5QThJR2s3SUdzckt5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FpQTlQVDBnY21WemRXeDBXMnRkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZbkp2YTJWdUlEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLQ0ZpY205clpXNHBJSEpsYW1WamRGTmhiWEJzWlNBOUlHWmhiSE5sTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWE4xYkhSYmFWMGdQU0JxTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1VIVnphQ0JoSUc1bGR5QmxiR1Z0Wlc1MElHOXVkRzhnZEdobElHaGxZWEF1SUZSb1pTQm9aV0Z3SUhOMGIzSmxjeUJ3YjNSbGJuUnBZV3dnYm1WcFoyaGliM0p6WEc0Z0tpQm1iM0lnWldGamFDQmtZWFJoSUhCdmFXNTBMaUJVYUdVZ1lHQnliM2RnWUNCd1lYSmhiV1YwWlhJZ1pHVjBaWEp0YVc1bGN5QjNhR2xqYUNCa1lYUmhJSEJ2YVc1MElIZGxYRzRnS2lCaGNtVWdZV1JrY21WemMybHVaeXdnZEdobElHQmdkMlZwWjJoMFlHQWdaR1YwWlhKdGFXNWxjeUIwYUdVZ1pHbHpkR0Z1WTJVZ0tHWnZjaUJvWldGd0lITnZjblJwYm1jcExGeHVJQ29nZEdobElHQmdhVzVrWlhoZ1lDQnBjeUIwYUdVZ1pXeGxiV1Z1ZENCMGJ5QmhaR1FzSUdGdVpDQjBhR1VnWm14aFp5QmtaWFJsY20xcGJtVnpJSGRvWlhSb1pYSWdkR2hwYzF4dUlDb2dhWE1nZEc4Z1ltVWdZMjl1YzJsa1pYSmxaQ0JoSUc1bGR5QmhaR1JwZEdsdmJpNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdobFlYQlFkWE5vS0Z4dUlDQm9aV0Z3T2lCSVpXRndMRnh1SUNCeWIzYzZJRzUxYldKbGNpeGNiaUFnZDJWcFoyaDBPaUJ1ZFcxaVpYSXNYRzRnSUdsdVpHVjRPaUJ1ZFcxaVpYSXNYRzRnSUdac1lXYzZJRzUxYldKbGNseHVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtOTNJRDBnVFdGMGFDNW1iRzl2Y2loeWIzY3BPMXh1SUNCamIyNXpkQ0JwYm1ScFkyVnpJRDBnYUdWaGNGc3dYVnR5YjNkZE8xeHVJQ0JqYjI1emRDQjNaV2xuYUhSeklEMGdhR1ZoY0ZzeFhWdHliM2RkTzF4dUlDQmpiMjV6ZENCcGMwNWxkeUE5SUdobFlYQmJNbDFiY205M1hUdGNibHh1SUNCcFppQW9kMlZwWjJoMElENDlJSGRsYVdkb2RITmJNRjBwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdNRHRjYmlBZ2ZWeHVYRzRnSUM4dklFSnlaV0ZySUdsbUlIZGxJR0ZzY21WaFpIa2dhR0YyWlNCMGFHbHpJR1ZzWlcxbGJuUXVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2FXNWthV05sY3k1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lHbG1JQ2hwYm1SbGVDQTlQVDBnYVc1a2FXTmxjMXRwWFNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SURBN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUhWdVkyaGxZMnRsWkVobFlYQlFkWE5vS0dobFlYQXNJSEp2ZHl3Z2QyVnBaMmgwTENCcGJtUmxlQ3dnWm14aFp5azdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1VIVnphQ0JoSUc1bGR5QmxiR1Z0Wlc1MElHOXVkRzhnZEdobElHaGxZWEF1SUZSb1pTQm9aV0Z3SUhOMGIzSmxjeUJ3YjNSbGJuUnBZV3dnYm1WcFoyaGliM0p6WEc0Z0tpQm1iM0lnWldGamFDQmtZWFJoSUhCdmFXNTBMaUJVYUdVZ1lHQnliM2RnWUNCd1lYSmhiV1YwWlhJZ1pHVjBaWEp0YVc1bGN5QjNhR2xqYUNCa1lYUmhJSEJ2YVc1MElIZGxYRzRnS2lCaGNtVWdZV1JrY21WemMybHVaeXdnZEdobElHQmdkMlZwWjJoMFlHQWdaR1YwWlhKdGFXNWxjeUIwYUdVZ1pHbHpkR0Z1WTJVZ0tHWnZjaUJvWldGd0lITnZjblJwYm1jcExGeHVJQ29nZEdobElHQmdhVzVrWlhoZ1lDQnBjeUIwYUdVZ1pXeGxiV1Z1ZENCMGJ5QmhaR1FzSUdGdVpDQjBhR1VnWm14aFp5QmtaWFJsY20xcGJtVnpJSGRvWlhSb1pYSWdkR2hwYzF4dUlDb2dhWE1nZEc4Z1ltVWdZMjl1YzJsa1pYSmxaQ0JoSUc1bGR5QmhaR1JwZEdsdmJpNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhWdVkyaGxZMnRsWkVobFlYQlFkWE5vS0Z4dUlDQm9aV0Z3T2lCSVpXRndMRnh1SUNCeWIzYzZJRzUxYldKbGNpeGNiaUFnZDJWcFoyaDBPaUJ1ZFcxaVpYSXNYRzRnSUdsdVpHVjRPaUJ1ZFcxaVpYSXNYRzRnSUdac1lXYzZJRzUxYldKbGNseHVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnYVc1a2FXTmxjeUE5SUdobFlYQmJNRjFiY205M1hUdGNiaUFnWTI5dWMzUWdkMlZwWjJoMGN5QTlJR2hsWVhCYk1WMWJjbTkzWFR0Y2JpQWdZMjl1YzNRZ2FYTk9aWGNnUFNCb1pXRndXekpkVzNKdmQxMDdYRzVjYmlBZ2FXWWdLSGRsYVdkb2RDQStQU0IzWldsbmFIUnpXekJkS1NCN1hHNGdJQ0FnY21WMGRYSnVJREE3WEc0Z0lIMWNibHh1SUNBdkx5Qkpibk5sY25RZ2RtRnNJR0YwSUhCdmMybDBhVzl1SUhwbGNtOWNiaUFnZDJWcFoyaDBjMXN3WFNBOUlIZGxhV2RvZER0Y2JpQWdhVzVrYVdObGMxc3dYU0E5SUdsdVpHVjRPMXh1SUNCcGMwNWxkMXN3WFNBOUlHWnNZV2M3WEc1Y2JpQWdMeThnUkdWelkyVnVaQ0IwYUdVZ2FHVmhjQ3dnYzNkaGNIQnBibWNnZG1Gc2RXVnpJSFZ1ZEdsc0lIUm9aU0J0WVhnZ2FHVmhjQ0JqY21sMFpYSnBiMjRnYVhNZ2JXVjBYRzRnSUd4bGRDQnBJRDBnTUR0Y2JpQWdiR1YwSUdsVGQyRndJRDBnTUR0Y2JpQWdkMmhwYkdVZ0tIUnlkV1VwSUh0Y2JpQWdJQ0JqYjI1emRDQnBZekVnUFNBeUlDb2dhU0FySURFN1hHNGdJQ0FnWTI5dWMzUWdhV015SUQwZ2FXTXhJQ3NnTVR0Y2JseHVJQ0FnSUdOdmJuTjBJR2hsWVhCVGFHRndaVElnUFNCb1pXRndXekJkV3pCZExteGxibWQwYUR0Y2JpQWdJQ0JwWmlBb2FXTXhJRDQ5SUdobFlYQlRhR0Z3WlRJcElIdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvYVdNeUlENDlJR2hsWVhCVGFHRndaVElwSUh0Y2JpQWdJQ0FnSUdsbUlDaDNaV2xuYUhSelcybGpNVjBnUGlCM1pXbG5hSFFwSUh0Y2JpQWdJQ0FnSUNBZ2FWTjNZWEFnUFNCcFl6RTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0hkbGFXZG9kSE5iYVdNeFhTQStQU0IzWldsbmFIUnpXMmxqTWwwcElIdGNiaUFnSUNBZ0lHbG1JQ2gzWldsbmFIUWdQQ0IzWldsbmFIUnpXMmxqTVYwcElIdGNiaUFnSUNBZ0lDQWdhVk4zWVhBZ1BTQnBZekU3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYVdZZ0tIZGxhV2RvZENBOElIZGxhV2RvZEhOYmFXTXlYU2tnZTF4dUlDQWdJQ0FnSUNCcFUzZGhjQ0E5SUdsak1qdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSGRsYVdkb2RITmJhVjBnUFNCM1pXbG5hSFJ6VzJsVGQyRndYVHRjYmlBZ0lDQnBibVJwWTJWelcybGRJRDBnYVc1a2FXTmxjMXRwVTNkaGNGMDdYRzRnSUNBZ2FYTk9aWGRiYVYwZ1BTQnBjMDVsZDF0cFUzZGhjRjA3WEc1Y2JpQWdJQ0JwSUQwZ2FWTjNZWEE3WEc0Z0lIMWNibHh1SUNCM1pXbG5hSFJ6VzJsZElEMGdkMlZwWjJoME8xeHVJQ0JwYm1ScFkyVnpXMmxkSUQwZ2FXNWtaWGc3WEc0Z0lHbHpUbVYzVzJsZElEMGdabXhoWnp0Y2JpQWdjbVYwZFhKdUlERTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FuVnBiR1FnWVNCb1pXRndJRzltSUdOaGJtUnBaR0YwWlNCdVpXbG5hR0p2Y25NZ1ptOXlJRzVsWVhKbGMzUWdibVZwWjJoaWIzSWdaR1Z6WTJWdWRDNGdSbTl5WEc0Z0tpQmxZV05vSUhabGNuUmxlQ0IwYUdVZ1kyRnVaR2xrWVhSbElHNWxhV2RvWW05eWN5QmhjbVVnWVc1NUlHTjFjbkpsYm5RZ2JtVnBaMmhpYjNKekxDQmhibVFnWVc1NVhHNGdLaUIyWlhKMGFXTmxjeUIwYUdGMElHaGhkbVVnZEdobElIWmxjblJsZUNCaGN5QnZibVVnYjJZZ2RHaGxhWElnYm1WaGNtVnpkQ0J1WldsbmFHSnZjbk11WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmlkV2xzWkVOaGJtUnBaR0YwWlhNb1hHNGdJR04xY25KbGJuUkhjbUZ3YURvZ1NHVmhjQ3hjYmlBZ2JsWmxjblJwWTJWek9pQnVkVzFpWlhJc1hHNGdJRzVPWldsbmFHSnZjbk02SUc1MWJXSmxjaXhjYmlBZ2JXRjRRMkZ1Wkdsa1lYUmxjem9nYm5WdFltVnlMRnh1SUNCeVlXNWtiMjA2SUZKaGJtUnZiVVp1WEc0cElIdGNiaUFnWTI5dWMzUWdZMkZ1Wkdsa1lYUmxUbVZwWjJoaWIzSnpJRDBnYldGclpVaGxZWEFvYmxabGNuUnBZMlZ6TENCdFlYaERZVzVrYVdSaGRHVnpLVHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVWbVZ5ZEdsalpYTTdJR2tyS3lrZ2UxeHVJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQXdPeUJxSUR3Z2JrNWxhV2RvWW05eWN6c2dhaXNyS1NCN1hHNGdJQ0FnSUNCcFppQW9ZM1Z5Y21WdWRFZHlZWEJvV3pCZFcybGRXMnBkSUR3Z01Da2dlMXh1SUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR052Ym5OMElHbGtlQ0E5SUdOMWNuSmxiblJIY21Gd2FGc3dYVnRwWFZ0cVhUdGNiaUFnSUNBZ0lHTnZibk4wSUdsemJpQTlJR04xY25KbGJuUkhjbUZ3YUZzeVhWdHBYVnRxWFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR1FnUFNCMWRHbHNjeTUwWVhWU1lXNWtLSEpoYm1SdmJTazdYRzRnSUNBZ0lDQm9aV0Z3VUhWemFDaGpZVzVrYVdSaGRHVk9aV2xuYUdKdmNuTXNJR2tzSUdRc0lHbGtlQ3dnYVhOdUtUdGNiaUFnSUNBZ0lHaGxZWEJRZFhOb0tHTmhibVJwWkdGMFpVNWxhV2RvWW05eWN5d2dhV1I0TENCa0xDQnBMQ0JwYzI0cE8xeHVJQ0FnSUNBZ1kzVnljbVZ1ZEVkeVlYQm9XekpkVzJsZFcycGRJRDBnTUR0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJR05oYm1ScFpHRjBaVTVsYVdkb1ltOXljenRjYm4xY2JseHVMeW9xWEc0Z0tpQkhhWFpsYmlCaGJpQmhjbkpoZVNCdlppQm9aV0Z3Y3lBb2IyWWdhVzVrYVdObGN5QmhibVFnZDJWcFoyaDBjeWtzSUhWdWNHRmpheUIwYUdVZ2FHVmhjRnh1SUNvZ2IzVjBJSFJ2SUdkcGRtVWdZVzVrSUdGeWNtRjVJRzltSUhOdmNuUmxaQ0JzYVhOMGN5QnZaaUJwYm1ScFkyVnpJR0Z1WkNCM1pXbG5hSFJ6SUdKNUlHbHVZM0psWVhOcGJtZGNiaUFxSUhkbGFXZG9kQzRnVkdocGN5QnBjeUJsWm1abFkzUnBkbVZzZVNCcWRYTjBJSFJvWlNCelpXTnZibVFnYUdGc1ppQnZaaUJvWldGd0lITnZjblFnS0hSb1pTQm1hWEp6ZEZ4dUlDb2dhR0ZzWmlCdWIzUWdZbVZwYm1jZ2NtVnhkV2x5WldRZ2MybHVZMlVnZDJVZ1lXeHlaV0ZrZVNCb1lYWmxJSFJvWlNCa1lYUmhJR2x1SUdFZ2FHVmhjQ2t1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmtaV2hsWVhCVGIzSjBLR2hsWVhBNklFaGxZWEFwSUh0Y2JpQWdZMjl1YzNRZ2FXNWthV05sY3lBOUlHaGxZWEJiTUYwN1hHNGdJR052Ym5OMElIZGxhV2RvZEhNZ1BTQm9aV0Z3V3pGZE8xeHVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2FXNWthV05sY3k1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lHTnZibk4wSUdsdVpFaGxZWEFnUFNCcGJtUnBZMlZ6VzJsZE8xeHVJQ0FnSUdOdmJuTjBJR1JwYzNSSVpXRndJRDBnZDJWcFoyaDBjMXRwWFR0Y2JseHVJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQXdPeUJxSUR3Z2FXNWtTR1ZoY0M1c1pXNW5kR2dnTFNBeE95QnFLeXNwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2x1WkVobFlYQkpibVJsZUNBOUlHbHVaRWhsWVhBdWJHVnVaM1JvSUMwZ2FpQXRJREU3WEc0Z0lDQWdJQ0JqYjI1emRDQmthWE4wU0dWaGNFbHVaR1Y0SUQwZ1pHbHpkRWhsWVhBdWJHVnVaM1JvSUMwZ2FpQXRJREU3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSFJsYlhBeElEMGdhVzVrU0dWaGNGc3dYVHRjYmlBZ0lDQWdJR2x1WkVobFlYQmJNRjBnUFNCcGJtUklaV0Z3VzJsdVpFaGxZWEJKYm1SbGVGMDdYRzRnSUNBZ0lDQnBibVJJWldGd1cybHVaRWhsWVhCSmJtUmxlRjBnUFNCMFpXMXdNVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdkR1Z0Y0RJZ1BTQmthWE4wU0dWaGNGc3dYVHRjYmlBZ0lDQWdJR1JwYzNSSVpXRndXekJkSUQwZ1pHbHpkRWhsWVhCYlpHbHpkRWhsWVhCSmJtUmxlRjA3WEc0Z0lDQWdJQ0JrYVhOMFNHVmhjRnRrYVhOMFNHVmhjRWx1WkdWNFhTQTlJSFJsYlhBeU8xeHVYRzRnSUNBZ0lDQnphV1owUkc5M2JpaGthWE4wU0dWaGNDd2dhVzVrU0dWaGNDd2daR2x6ZEVobFlYQkpibVJsZUN3Z01DazdYRzRnSUNBZ2ZWeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCN0lHbHVaR2xqWlhNc0lIZGxhV2RvZEhNZ2ZUdGNibjFjYmx4dUx5b3FYRzRnS2lCU1pYTjBiM0psSUhSb1pTQm9aV0Z3SUhCeWIzQmxjblI1SUdadmNpQmhJR2hsWVhBZ2QybDBhQ0JoYmlCdmRYUWdiMllnY0d4aFkyVWdaV3hsYldWdWRGeHVJQ29nWVhRZ2NHOXphWFJwYjI0Z1lHQmxiSFJnWUM0Z1ZHaHBjeUIzYjNKcmN5QjNhWFJvSUdFZ2FHVmhjQ0J3WVdseUlIZG9aWEpsSUdobFlYQXhJR05oY25KcFpYTmNiaUFxSUhSb1pTQjNaV2xuYUhSeklHRnVaQ0JvWldGd01pQm9iMnhrY3lCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCbGJHVnRaVzUwY3k1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnYzJsbWRFUnZkMjRvWEc0Z0lHaGxZWEF4T2lCdWRXMWlaWEpiWFN4Y2JpQWdhR1ZoY0RJNklHNTFiV0psY2x0ZExGeHVJQ0JqWldsc2FXNW5PaUJ1ZFcxaVpYSXNYRzRnSUdWc2REb2diblZ0WW1WeVhHNHBJSHRjYmlBZ2QyaHBiR1VnS0dWc2RDQXFJRElnS3lBeElEd2dZMlZwYkdsdVp5a2dlMXh1SUNBZ0lHTnZibk4wSUd4bFpuUkRhR2xzWkNBOUlHVnNkQ0FxSURJZ0t5QXhPMXh1SUNBZ0lHTnZibk4wSUhKcFoyaDBRMmhwYkdRZ1BTQnNaV1owUTJocGJHUWdLeUF4TzF4dUlDQWdJR3hsZENCemQyRndJRDBnWld4ME8xeHVYRzRnSUNBZ2FXWWdLR2hsWVhBeFczTjNZWEJkSUR3Z2FHVmhjREZiYkdWbWRFTm9hV3hrWFNrZ2UxeHVJQ0FnSUNBZ2MzZGhjQ0E5SUd4bFpuUkRhR2xzWkR0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hKcFoyaDBRMmhwYkdRZ1BDQmpaV2xzYVc1bklDWW1JR2hsWVhBeFczTjNZWEJkSUR3Z2FHVmhjREZiY21sbmFIUkRhR2xzWkYwcElIdGNiaUFnSUNBZ0lITjNZWEFnUFNCeWFXZG9kRU5vYVd4a08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHpkMkZ3SUQwOVBTQmxiSFFwSUh0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwWlcxd01TQTlJR2hsWVhBeFcyVnNkRjA3WEc0Z0lDQWdJQ0JvWldGd01WdGxiSFJkSUQwZ2FHVmhjREZiYzNkaGNGMDdYRzRnSUNBZ0lDQm9aV0Z3TVZ0emQyRndYU0E5SUhSbGJYQXhPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQjBaVzF3TWlBOUlHaGxZWEF5VzJWc2RGMDdYRzRnSUNBZ0lDQm9aV0Z3TWx0bGJIUmRJRDBnYUdWaGNESmJjM2RoY0YwN1hHNGdJQ0FnSUNCb1pXRndNbHR6ZDJGd1hTQTlJSFJsYlhBeU8xeHVJQ0FnSUNBZ1pXeDBJRDBnYzNkaGNEdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JseHVMeW9xWEc0Z0tpQlRaV0Z5WTJnZ2RHaGxJR2hsWVhBZ1ptOXlJSFJvWlNCemJXRnNiR1Z6ZENCbGJHVnRaVzUwSUhSb1lYUWdhWE1nYzNScGJHd2dabXhoWjJkbFpDNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOdFlXeHNaWE4wUm14aFoyZGxaQ2hvWldGd09pQklaV0Z3TENCeWIzYzZJRzUxYldKbGNpa2dlMXh1SUNCamIyNXpkQ0JwYm1RZ1BTQm9aV0Z3V3pCZFczSnZkMTA3WEc0Z0lHTnZibk4wSUdScGMzUWdQU0JvWldGd1d6RmRXM0p2ZDEwN1hHNGdJR052Ym5OMElHWnNZV2NnUFNCb1pXRndXekpkVzNKdmQxMDdYRzVjYmlBZ2JHVjBJRzFwYmtScGMzUWdQU0JKYm1acGJtbDBlVHRjYmlBZ2JHVjBJSEpsYzNWc2RFbHVaR1Y0SUQwZ0xURTdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BpQnBibVF1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNCcFppQW9abXhoWjF0cFhTQTlQVDBnTVNBbUppQmthWE4wVzJsZElEd2diV2x1UkdsemRDa2dlMXh1SUNBZ0lDQWdiV2x1UkdsemRDQTlJR1JwYzNSYmFWMDdYRzRnSUNBZ0lDQnlaWE4xYkhSSmJtUmxlQ0E5SUdrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2FXWWdLSEpsYzNWc2RFbHVaR1Y0SUQ0OUlEQXBJSHRjYmlBZ0lDQm1iR0ZuVzNKbGMzVnNkRWx1WkdWNFhTQTlJREE3WEc0Z0lDQWdjbVYwZFhKdUlFMWhkR2d1Wm14dmIzSW9hVzVrVzNKbGMzVnNkRWx1WkdWNFhTazdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlDMHhPMXh1SUNCOVhHNTlYRzRpWFgwPSIsIi8qKlxuICogQGxpY2Vuc2VcbiAqXG4gKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJztcbi8qKlxuICogSW50ZXJuYWwgMi1kaW1lbnNpb25hbCBzcGFyc2UgbWF0cml4IGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBTcGFyc2VNYXRyaXgge1xuICAgIGNvbnN0cnVjdG9yKHJvd3MsIGNvbHMsIHZhbHVlcywgZGltcykge1xuICAgICAgICB0aGlzLmVudHJpZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMublJvd3MgPSAwO1xuICAgICAgICB0aGlzLm5Db2xzID0gMDtcbiAgICAgICAgaWYgKHJvd3MubGVuZ3RoICE9PSBjb2xzLmxlbmd0aCB8fCByb3dzLmxlbmd0aCAhPT0gdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyb3dzLCBjb2xzIGFuZCB2YWx1ZXMgYXJyYXlzIG11c3QgYWxsIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETzogQXNzZXJ0IHRoYXQgZGltcyBhcmUgbGVnaXQuXG4gICAgICAgIHRoaXMublJvd3MgPSBkaW1zWzBdO1xuICAgICAgICB0aGlzLm5Db2xzID0gZGltc1sxXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHJvd3NbaV07XG4gICAgICAgICAgICBjb25zdCBjb2wgPSBjb2xzW2ldO1xuICAgICAgICAgICAgdGhpcy5jaGVja0RpbXMocm93LCBjb2wpO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5tYWtlS2V5KHJvdywgY29sKTtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zZXQoa2V5LCB7IHZhbHVlOiB2YWx1ZXNbaV0sIHJvdywgY29sIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIG1ha2VLZXkocm93LCBjb2wpIHtcbiAgICAgICAgcmV0dXJuIGAke3Jvd306JHtjb2x9YDtcbiAgICB9XG4gICAgY2hlY2tEaW1zKHJvdywgY29sKSB7XG4gICAgICAgIGNvbnN0IHdpdGhpbkJvdW5kcyA9IHJvdyA8IHRoaXMublJvd3MgJiYgY29sIDwgdGhpcy5uQ29scztcbiAgICAgICAgaWYgKCF3aXRoaW5Cb3VuZHMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigncm93IGFuZC9vciBjb2wgc3BlY2lmaWVkIG91dHNpZGUgb2YgbWF0cml4IGRpbWVuc2lvbnMnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXQocm93LCBjb2wsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuY2hlY2tEaW1zKHJvdywgY29sKTtcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5tYWtlS2V5KHJvdywgY29sKTtcbiAgICAgICAgaWYgKCF0aGlzLmVudHJpZXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zZXQoa2V5LCB7IHZhbHVlLCByb3csIGNvbCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5nZXQoa2V5KS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldChyb3csIGNvbCwgZGVmYXVsdFZhbHVlID0gMCkge1xuICAgICAgICAvL3RoaXMuY2hlY2tEaW1zKHJvdywgY29sKTtcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5tYWtlS2V5KHJvdywgY29sKTtcbiAgICAgICAgaWYgKHRoaXMuZW50cmllcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllcy5nZXQoa2V5KS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0QWxsKG9yZGVyZWQgPSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IHJvd0NvbFZhbHVlcyA9IG5ldyBBcnJheSh0aGlzLmVudHJpZXMuc2l6ZSkuZmlsbChudWxsKTtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICB0aGlzLmVudHJpZXMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICByb3dDb2xWYWx1ZXNbaSsrXSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG9yZGVyZWQpIHtcbiAgICAgICAgICAgIC8vIE9yZGVyaW5nIHRoZSByZXN1bHQgaXNuJ3QgcmVxdWlyZWQgZm9yIHByb2Nlc3NpbmcgYnV0IGl0IGRvZXMgbWFrZSBpdCBlYXNpZXIgdG8gd3JpdGUgdGVzdHNcbiAgICAgICAgICAgIHJvd0NvbFZhbHVlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGEucm93ID09PSBiLnJvdykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5jb2wgLSBiLmNvbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnJvdyAtIGIucm93O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dDb2xWYWx1ZXM7XG4gICAgfVxuICAgIGdldERpbXMoKSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5uUm93cywgdGhpcy5uQ29sc107XG4gICAgfVxuICAgIGdldFJvd3MoKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZW50cmllcywgKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUucm93KTtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMucm93cyBhcyB1bmtub3duIGFzIG51bWJlcltdO1xuICAgIH1cbiAgICBnZXRDb2xzKCkge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVudHJpZXMsIChba2V5LCB2YWx1ZV0pID0+IHZhbHVlLmNvbCk7XG4gICAgICAgIC8vIHJldHVybiB0aGlzLmNvbHMgYXMgdW5rbm93biBhcyBudW1iZXJbXTtcbiAgICB9XG4gICAgZ2V0VmFsdWVzKCkge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVudHJpZXMsIChba2V5LCB2YWx1ZV0pID0+IHZhbHVlLnZhbHVlKTtcbiAgICAgICAgLy9yZXR1cm4gdGhpcy52YWx1ZXMgYXMgdW5rbm93biBhcyBudW1iZXJbXTtcbiAgICB9XG4gICAgZm9yRWFjaChmbikge1xuICAgICAgICB0aGlzLmVudHJpZXMuZm9yRWFjaCh2YWx1ZSA9PiBmbih2YWx1ZS52YWx1ZSwgdmFsdWUucm93LCB2YWx1ZS5jb2wpKTtcbiAgICB9XG4gICAgbWFwKGZuKSB7XG4gICAgICAgIGNvbnN0IHZhbHMgPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMuZW50cmllcy5zaXplKTtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICB0aGlzLmVudHJpZXMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICB2YWxzW2krK10gPSBmbih2YWx1ZS52YWx1ZSwgdmFsdWUucm93LCB2YWx1ZS5jb2wpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZGltcyA9IFt0aGlzLm5Sb3dzLCB0aGlzLm5Db2xzXTtcbiAgICAgICAgcmV0dXJuIG5ldyBTcGFyc2VNYXRyaXgodGhpcy5nZXRSb3dzKCksIHRoaXMuZ2V0Q29scygpLCB2YWxzLCBkaW1zKTtcbiAgICB9XG4gICAgdG9BcnJheSgpIHtcbiAgICAgICAgY29uc3Qgcm93cyA9IHV0aWxzLmVtcHR5KHRoaXMublJvd3MpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByb3dzLm1hcCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdXRpbHMuemVyb3ModGhpcy5uQ29scyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVudHJpZXMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBvdXRwdXRbdmFsdWUucm93XVt2YWx1ZS5jb2xdID0gdmFsdWUudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbn1cbi8qKlxuICogVHJhbnNwb3NlIGEgc3BhcnNlIG1hdHJpeFxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNwb3NlKG1hdHJpeCkge1xuICAgIGNvbnN0IG9sZFJvd3MgPSBtYXRyaXguZ2V0Um93cygpO1xuICAgIGNvbnN0IG9sZENvbHMgPSBtYXRyaXguZ2V0Q29scygpO1xuICAgIGNvbnN0IG9sZFZhbHMgPSBtYXRyaXguZ2V0VmFsdWVzKCk7XG4gICAgY29uc3QgbWF0bGVuID0gb2xkQ29scy5sZW5ndGg7XG4gICAgY29uc3QgY29scyA9IG5ldyBJbnQzMkFycmF5KG1hdGxlbik7XG4gICAgY29uc3Qgcm93cyA9IG5ldyBJbnQzMkFycmF5KG1hdGxlbik7XG4gICAgY29uc3QgdmFscyA9IG5ldyBGbG9hdDMyQXJyYXkobWF0bGVuKTtcbiAgICBjb2xzLnNldChvbGRSb3dzKTtcbiAgICByb3dzLnNldChvbGRDb2xzKTtcbiAgICB2YWxzLnNldChvbGRWYWxzKTtcbiAgICBjb25zdCBkaW1zID0gW21hdHJpeC5uQ29scywgbWF0cml4Lm5Sb3dzXTtcbiAgICByZXR1cm4gbmV3IFNwYXJzZU1hdHJpeChyb3dzLCBjb2xzLCB2YWxzLCBkaW1zKTtcbn1cbi8qKlxuICogQ29uc3RydWN0IGEgc3BhcnNlIGlkZW50aXR5IG1hdHJpeFxuICovXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpdHkoc2l6ZSkge1xuICAgIGNvbnN0IFtyb3dzXSA9IHNpemU7XG4gICAgY29uc3QgbWF0cml4ID0gbmV3IFNwYXJzZU1hdHJpeChbXSwgW10sIFtdLCBzaXplKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3M7IGkrKykge1xuICAgICAgICBtYXRyaXguc2V0KGksIGksIDEpO1xuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xufVxuLyoqXG4gKiBFbGVtZW50LXdpc2UgbXVsdGlwbGljYXRpb24gb2YgdHdvIG1hdHJpY2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWlyd2lzZU11bHRpcGx5KGEsIGIpIHtcbiAgICByZXR1cm4gZWxlbWVudFdpc2UoYSwgYiwgKHgsIHkpID0+IHggKiB5KTtcbn1cbi8qKlxuICogRWxlbWVudC13aXNlIGFkZGl0aW9uIG9mIHR3byBtYXRyaWNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkKGEsIGIpIHtcbiAgICByZXR1cm4gZWxlbWVudFdpc2UoYSwgYiwgKHgsIHkpID0+IHggKyB5KTtcbn1cbi8qKlxuICogRWxlbWVudC13aXNlIHN1YnRyYWN0aW9uIG9mIHR3byBtYXRyaWNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc3VidHJhY3QoYSwgYikge1xuICAgIHJldHVybiBlbGVtZW50V2lzZShhLCBiLCAoeCwgeSkgPT4geCAtIHkpO1xufVxuLyoqXG4gKiBFbGVtZW50LXdpc2UgbWF4aW11bSBvZiB0d28gbWF0cmljZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1heGltdW0oYSwgYikge1xuICAgIHJldHVybiBlbGVtZW50V2lzZShhLCBiLCAoeCwgeSkgPT4gKHggPiB5ID8geCA6IHkpKTtcbn1cbi8qKlxuICogU2NhbGFyIG11bHRpcGxpY2F0aW9uIG9mIHR3byBtYXRyaWNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbXVsdGlwbHlTY2FsYXIoYSwgc2NhbGFyKSB7XG4gICAgcmV0dXJuIGEubWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgKiBzY2FsYXI7XG4gICAgfSk7XG59XG4vKipcbiAqIFJldHVybnMgYSBuZXcgbWF0cml4IHdpdGggemVybyBlbnRyaWVzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbGltaW5hdGVaZXJvcyhtKSB7XG4gICAgY29uc3QgemVyb0luZGljZXMgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgdmFsdWVzID0gbS5nZXRWYWx1ZXMoKTtcbiAgICBjb25zdCByb3dzID0gbS5nZXRSb3dzKCk7XG4gICAgY29uc3QgY29scyA9IG0uZ2V0Q29scygpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh2YWx1ZXNbaV0gPT09IDApIHtcbiAgICAgICAgICAgIHplcm9JbmRpY2VzLmFkZChpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZW1vdmVCeVplcm9JbmRleCA9IChfLCBpbmRleCkgPT4gIXplcm9JbmRpY2VzLmhhcyhpbmRleCk7XG4gICAgY29uc3QgbmV4dFZhbHVlcyA9IHZhbHVlcy5maWx0ZXIocmVtb3ZlQnlaZXJvSW5kZXgpO1xuICAgIGNvbnN0IG5leHRSb3dzID0gcm93cy5maWx0ZXIocmVtb3ZlQnlaZXJvSW5kZXgpO1xuICAgIGNvbnN0IG5leHRDb2xzID0gY29scy5maWx0ZXIocmVtb3ZlQnlaZXJvSW5kZXgpO1xuICAgIHJldHVybiBuZXcgU3BhcnNlTWF0cml4KG5leHRSb3dzLCBuZXh0Q29scywgbmV4dFZhbHVlcywgbS5nZXREaW1zKCkpO1xufVxuLyoqXG4gKiBOb3JtYWxpemF0aW9uIG9mIGEgc3BhcnNlIG1hdHJpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZShtLCBub3JtVHlwZSA9IFwibDJcIiAvKiBOb3JtVHlwZS5sMiAqLykge1xuICAgIGNvbnN0IG5vcm1GbiA9IG5vcm1GbnNbbm9ybVR5cGVdO1xuICAgIGNvbnN0IGNvbHNCeVJvdyA9IG5ldyBNYXAoKTtcbiAgICBtLmZvckVhY2goKF8sIHJvdywgY29sKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHMgPSBjb2xzQnlSb3cuZ2V0KHJvdykgfHwgW107XG4gICAgICAgIGNvbHMucHVzaChjb2wpO1xuICAgICAgICBjb2xzQnlSb3cuc2V0KHJvdywgY29scyk7XG4gICAgfSk7XG4gICAgY29uc3QgbmV4dE1hdHJpeCA9IG5ldyBTcGFyc2VNYXRyaXgoW10sIFtdLCBbXSwgbS5nZXREaW1zKCkpO1xuICAgIGZvciAobGV0IHJvdyBvZiBjb2xzQnlSb3cua2V5cygpKSB7XG4gICAgICAgIGNvbnN0IGNvbHMgPSBjb2xzQnlSb3cuZ2V0KHJvdykuc29ydCgpO1xuICAgICAgICBjb25zdCB2YWxzID0gY29scy5tYXAoY29sID0+IG0uZ2V0KHJvdywgY29sKSk7XG4gICAgICAgIGNvbnN0IG5vcm0gPSBub3JtRm4odmFscyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9ybS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbmV4dE1hdHJpeC5zZXQocm93LCBjb2xzW2ldLCBub3JtW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dE1hdHJpeDtcbn1cbmNvbnN0IG5vcm1GbnMgPSB7XG4gICAgW1wibWF4XCIgLyogTm9ybVR5cGUubWF4ICovXTogKHhzKSA9PiB7XG4gICAgICAgIGxldCBtYXggPSAtSW5maW5pdHk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIG1heCA9IHhzW2ldID4gbWF4ID8geHNbaV0gOiBtYXg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHhzLm1hcCh4ID0+IHggLyBtYXgpO1xuICAgIH0sXG4gICAgW1wibDFcIiAvKiBOb3JtVHlwZS5sMSAqL106ICh4cykgPT4ge1xuICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc3VtICs9IHhzW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4cy5tYXAoeCA9PiB4IC8gc3VtKTtcbiAgICB9LFxuICAgIFtcImwyXCIgLyogTm9ybVR5cGUubDIgKi9dOiAoeHMpID0+IHtcbiAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHN1bSArPSB4c1tpXSAqKiAyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4cy5tYXAoeCA9PiBNYXRoLnNxcnQoeCAqKiAyIC8gc3VtKSk7XG4gICAgfSxcbn07XG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgZWxlbWVudC13aXNlIG9wZXJhdGlvbnMuXG4gKi9cbmZ1bmN0aW9uIGVsZW1lbnRXaXNlKGEsIGIsIG9wKSB7XG4gICAgY29uc3QgdmlzaXRlZCA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCByb3dzID0gW107XG4gICAgY29uc3QgY29scyA9IFtdO1xuICAgIGNvbnN0IHZhbHMgPSBbXTtcbiAgICBjb25zdCBvcGVyYXRlID0gKHJvdywgY29sKSA9PiB7XG4gICAgICAgIHJvd3MucHVzaChyb3cpO1xuICAgICAgICBjb2xzLnB1c2goY29sKTtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gb3AoYS5nZXQocm93LCBjb2wpLCBiLmdldChyb3csIGNvbCkpO1xuICAgICAgICB2YWxzLnB1c2gobmV4dFZhbHVlKTtcbiAgICB9O1xuICAgIGNvbnN0IHZhbHVlc0EgPSBhLmdldFZhbHVlcygpO1xuICAgIGNvbnN0IHJvd3NBID0gYS5nZXRSb3dzKCk7XG4gICAgY29uc3QgY29sc0EgPSBhLmdldENvbHMoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc0EubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgcm93ID0gcm93c0FbaV07XG4gICAgICAgIGNvbnN0IGNvbCA9IGNvbHNBW2ldO1xuICAgICAgICBjb25zdCBrZXkgPSBgJHtyb3d9OiR7Y29sfWA7XG4gICAgICAgIHZpc2l0ZWQuYWRkKGtleSk7XG4gICAgICAgIG9wZXJhdGUocm93LCBjb2wpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZXNCID0gYi5nZXRWYWx1ZXMoKTtcbiAgICBjb25zdCByb3dzQiA9IGIuZ2V0Um93cygpO1xuICAgIGNvbnN0IGNvbHNCID0gYi5nZXRDb2xzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNCLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IHJvd3NCW2ldO1xuICAgICAgICBjb25zdCBjb2wgPSBjb2xzQltpXTtcbiAgICAgICAgY29uc3Qga2V5ID0gYCR7cm93fToke2NvbH1gO1xuICAgICAgICBpZiAodmlzaXRlZC5oYXMoa2V5KSlcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBvcGVyYXRlKHJvdywgY29sKTtcbiAgICB9XG4gICAgY29uc3QgZGltcyA9IFthLm5Sb3dzLCBhLm5Db2xzXTtcbiAgICByZXR1cm4gbmV3IFNwYXJzZU1hdHJpeChyb3dzLCBjb2xzLCB2YWxzLCBkaW1zKTtcbn1cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBnZXR0aW5nIGRhdGEsIGluZGljZXMsIGFuZCBpbnB0ciBhcnJheXMgZnJvbSBhIHNwYXJzZVxuICogbWF0cml4IHRvIGZvbGxvdyBjc3IgbWF0cml4IGNvbnZlbnRpb25zLiBTdXBlciBpbmVmZmljaWVudCAoYW5kIGtpbmQgb2ZcbiAqIGRlZmVhdHMgdGhlIHB1cnBvc2Ugb2YgdGhpcyBjb252ZW50aW9uKSBidXQgYSBsb3Qgb2YgdGhlIHBvcnRlZCBweXRob24gdHJlZVxuICogc2VhcmNoIGxvZ2ljIGRlcGVuZHMgb24gdGhpcyBkYXRhIGZvcm1hdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENTUih4KSB7XG4gICAgY29uc3QgZW50cmllcyA9IFtdO1xuICAgIHguZm9yRWFjaCgodmFsdWUsIHJvdywgY29sKSA9PiB7XG4gICAgICAgIGVudHJpZXMucHVzaCh7IHZhbHVlLCByb3csIGNvbCB9KTtcbiAgICB9KTtcbiAgICBlbnRyaWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGEucm93ID09PSBiLnJvdykge1xuICAgICAgICAgICAgcmV0dXJuIGEuY29sIC0gYi5jb2w7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYS5yb3cgLSBiLnJvdztcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGluZGljZXMgPSBbXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICBjb25zdCBpbmRwdHIgPSBbXTtcbiAgICBsZXQgY3VycmVudFJvdyA9IC0xO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB7IHJvdywgY29sLCB2YWx1ZSB9ID0gZW50cmllc1tpXTtcbiAgICAgICAgaWYgKHJvdyAhPT0gY3VycmVudFJvdykge1xuICAgICAgICAgICAgY3VycmVudFJvdyA9IHJvdztcbiAgICAgICAgICAgIGluZHB0ci5wdXNoKGkpO1xuICAgICAgICB9XG4gICAgICAgIGluZGljZXMucHVzaChjb2wpO1xuICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB7IGluZGljZXMsIHZhbHVlcywgaW5kcHRyIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liV0YwY21sNExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYldGMGNtbDRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQk96czdPenM3T3pzN096czdPenM3T3p0SFFXbENSenRCUVVWSUxFOUJRVThzUzBGQlN5eExRVUZMTEUxQlFVMHNVMEZCVXl4RFFVRkRPMEZCU1dwRE96dEhRVVZITzBGQlEwZ3NUVUZCVFN4UFFVRlBMRmxCUVZrN1NVRk5ka0lzV1VGRFJTeEpRVUV5UWl4RlFVTXpRaXhKUVVFeVFpeEZRVU16UWl4TlFVRXJRaXhGUVVNdlFpeEpRVUZqTzFGQlZGSXNXVUZCVHl4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGcFFpeERRVUZETzFGQlJXeERMRlZCUVVzc1IwRkJWeXhEUVVGRExFTkJRVU03VVVGRGJFSXNWVUZCU3l4SFFVRlhMRU5CUVVNc1EwRkJRenRSUVZGNlFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRXRCUVVzc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4TFFVRkxMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVU3V1VGRGFFVXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkRZaXcwUkVGQk5FUXNRMEZETjBRc1EwRkJRenRUUVVOSU8xRkJSVVFzYjBOQlFXOURPMUZCUTNCRExFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzSkNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzUkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTndRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRjRUlzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRGVrSXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRia01zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0VFFVTjJSRHRKUVVOSUxFTkJRVU03U1VGRlR5eFBRVUZQTEVOQlFVTXNSMEZCVnl4RlFVRkZMRWRCUVZjN1VVRkRkRU1zVDBGQlR5eEhRVUZITEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVONlFpeERRVUZETzBsQlJVOHNVMEZCVXl4RFFVRkRMRWRCUVZjc1JVRkJSU3hIUVVGWE8xRkJRM2hETEUxQlFVMHNXVUZCV1N4SFFVRkhMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eEpRVUZKTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRekZFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVN1dVRkRha0lzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4MVJFRkJkVVFzUTBGQlF5eERRVUZETzFOQlF6RkZPMGxCUTBnc1EwRkJRenRKUVVWRUxFZEJRVWNzUTBGQlF5eEhRVUZYTEVWQlFVVXNSMEZCVnl4RlFVRkZMRXRCUVdFN1VVRkRla01zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVrSXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRia01zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlF6RkNMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0VFFVTTFRenRoUVVGTk8xbEJRMHdzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0VFFVTjBRenRKUVVOSUxFTkJRVU03U1VGRlJDeEhRVUZITEVOQlFVTXNSMEZCVnl4RlFVRkZMRWRCUVZjc1JVRkJSU3haUVVGWkxFZEJRVWNzUTBGQlF6dFJRVU0xUXl3eVFrRkJNa0k3VVVGRE0wSXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRia01zU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU42UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUlN4RFFVRkRMRXRCUVVzc1EwRkJRenRUUVVOeVF6dGhRVUZOTzFsQlEwd3NUMEZCVHl4WlFVRlpMRU5CUVVNN1UwRkRja0k3U1VGRFNDeERRVUZETzBsQlJVUXNUVUZCVFN4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSk8xRkJRMjVDTEUxQlFVMHNXVUZCV1N4SFFVRlpMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzUkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5XTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTzFsQlF6TkNMRmxCUVZrc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTTFRaXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5JTEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTFnc09FWkJRVGhHTzFsQlF6bEdMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRM3BDTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTzI5Q1FVTnVRaXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRenRwUWtGRGRFSTdjVUpCUVUwN2IwSkJRMHdzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU03YVVKQlEzUkNPMWxCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRFNqdFJRVU5FTEU5QlFVOHNXVUZCV1N4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VGRlJDeFBRVUZQTzFGQlEwd3NUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTJ4RExFTkJRVU03U1VGRlJDeFBRVUZQTzFGQlEwNHNUMEZCVHl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hMUVVGTExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRemRFTERKRFFVRXlRenRKUVVNMVF5eERRVUZETzBsQlJVUXNUMEZCVHp0UlFVTk9MRTlCUVU4c1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU0zUkN3eVEwRkJNa003U1VGRE5VTXNRMEZCUXp0SlFVVkVMRk5CUVZNN1VVRkRWQ3hQUVVGUExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETDBRc05FTkJRVFJETzBsQlF6VkRMRU5CUVVNN1NVRkZSQ3hQUVVGUExFTkJRVU1zUlVGQmNVUTdVVUZETTBRc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNaRkxFTkJRVU03U1VGRlJDeEhRVUZITEVOQlFVTXNSVUZCZFVRN1VVRkRla1FzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTnFSQ3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVRTdVVUZEVkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlR0WlFVTXpRaXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU53UkN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFMUJRVTBzU1VGQlNTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZEVNc1QwRkJUeXhKUVVGSkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVsQlFUSkNMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE4wWXNRMEZCUXp0SlFVVkVMRTlCUVU4N1VVRkRUQ3hOUVVGTkxFbEJRVWtzUjBGQlowSXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEYkVRc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVN1dVRkRNMElzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRek5DTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRE4wTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRTQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEpRVU5vUWl4RFFVRkRPME5CUTBZN1FVRkZSRHM3UjBGRlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1RVRkJiMEk3U1VGRE5VTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBsQlEycERMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0SlFVTnFReXhOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkRia01zVFVGQlRTeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVNNVFpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU53UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTndReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVWMFF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRMnhDTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGJFSXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU5zUWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRekZETEU5QlFVOHNTVUZCU1N4WlFVRlpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRiRVFzUTBGQlF6dEJRVVZFT3p0SFFVVkhPMEZCUTBnc1RVRkJUU3hWUVVGVkxGRkJRVkVzUTBGQlF5eEpRVUZqTzBsQlEzSkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZEY0VJc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeFpRVUZaTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEYkVRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFJRVU0zUWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRja0k3U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRE8wRkJSVVE3TzBkQlJVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlF6bENMRU5CUVdVc1JVRkRaaXhEUVVGbE8wbEJSV1lzVDBGQlR5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0xUXl4RFFVRkRPMEZCUlVRN08wZEJSVWM3UVVGRFNDeE5RVUZOTEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVdVc1JVRkJSU3hEUVVGbE8wbEJRMnhFTEU5QlFVOHNWMEZCVnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETlVNc1EwRkJRenRCUVVWRU96dEhRVVZITzBGQlEwZ3NUVUZCVFN4VlFVRlZMRkZCUVZFc1EwRkJReXhEUVVGbExFVkJRVVVzUTBGQlpUdEpRVU4yUkN4UFFVRlBMRmRCUVZjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpWRExFTkJRVU03UVVGRlJEczdSMEZGUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hQUVVGUExFTkJRVU1zUTBGQlpTeEZRVUZGTEVOQlFXVTdTVUZEZEVRc1QwRkJUeXhYUVVGWExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1JFTEVOQlFVTTdRVUZGUkRzN1IwRkZSenRCUVVOSUxFMUJRVTBzVlVGQlZTeGpRVUZqTEVOQlFVTXNRMEZCWlN4RlFVRkZMRTFCUVdNN1NVRkROVVFzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJZU3hGUVVGRkxFVkJRVVU3VVVGRE4wSXNUMEZCVHl4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRE8wbEJRM2hDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJRenRCUVVWRU96dEhRVVZITzBGQlEwZ3NUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhEUVVGbE8wbEJRelZETEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRE9VSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlF6ZENMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0SlFVTjZRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkRla0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRkRU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRMjVDTEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRGNFSTdTMEZEUmp0SlFVTkVMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4RFFVRk5MRVZCUVVVc1MwRkJZU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRE4wVXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8wbEJRM0JFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1EwRkJRenRKUVVOb1JDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkZhRVFzVDBGQlR5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxGVkJRVlVzUlVGQlJTeERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOMlJTeERRVUZETzBGQlJVUTdPMGRCUlVjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVTBGQlV5eERRVUZETEVOQlFXVXNSVUZCUlN4UlFVRlJMSGxDUVVGak8wbEJReTlFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVVZxUXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQmIwSXNRMEZCUXp0SlFVTTVReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU40UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVOMFF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMllzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZTQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVVM1JDeExRVUZMTEVsQlFVa3NSMEZCUnl4SlFVRkpMRk5CUVZNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJUdFJRVU5vUXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJSWGhETEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpsRExFMUJRVTBzU1VGQlNTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNeFFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVOd1F5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRGRrTTdTMEZEUmp0SlFVVkVMRTlCUVU4c1ZVRkJWU3hEUVVGRE8wRkJRM0JDTEVOQlFVTTdRVUZOUkN4TlFVRk5MRTlCUVU4c1IwRkJXVHRKUVVOMlFpd3dRa0ZCWXl4RlFVRkZMRU5CUVVNc1JVRkJXU3hGUVVGRkxFVkJRVVU3VVVGREwwSXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU03VVVGRGNFSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRGJFTXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRPMU5CUTJwRE8xRkJRMFFzVDBGQlR5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFTkJRVU03U1VGRFJDeDNRa0ZCWVN4RlFVRkZMRU5CUVVNc1JVRkJXU3hGUVVGRkxFVkJRVVU3VVVGRE9VSXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMW9zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRiRU1zUjBGQlJ5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVOa08xRkJRMFFzVDBGQlR5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFTkJRVU03U1VGRFJDeDNRa0ZCWVN4RlFVRkZMRU5CUVVNc1JVRkJXU3hGUVVGRkxFVkJRVVU3VVVGRE9VSXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMW9zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRiRU1zUjBGQlJ5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRGJrSTdVVUZEUkN4UFFVRlBMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNNVF5eERRVUZETzBOQlEwWXNRMEZCUXp0QlFWRkdPenRIUVVWSE8wRkJRMGdzVTBGQlV5eFhRVUZYTEVOQlEyeENMRU5CUVdVc1JVRkRaaXhEUVVGbExFVkJRMllzUlVGQmIwTTdTVUZGY0VNc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeEhRVUZITEVWQlFWVXNRMEZCUXp0SlFVTnNReXhOUVVGTkxFbEJRVWtzUjBGQllTeEZRVUZGTEVOQlFVTTdTVUZETVVJc1RVRkJUU3hKUVVGSkxFZEJRV0VzUlVGQlJTeERRVUZETzBsQlF6RkNMRTFCUVUwc1NVRkJTU3hIUVVGaExFVkJRVVVzUTBGQlF6dEpRVVV4UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFZEJRVmNzUlVGQlJTeEhRVUZYTEVWQlFVVXNSVUZCUlR0UlFVTXpReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJZc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm1MRTFCUVUwc1UwRkJVeXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzWkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdTVUZEZGtJc1EwRkJReXhEUVVGRE8wbEJRMFlzVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8wbEJRemxDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEpRVU14UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZETVVJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEZGtNc1RVRkJUU3hIUVVGSExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU0xUWl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEycENMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTMEZEYmtJN1NVRkZSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRekZDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEpRVU14UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFJRVU4yUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tJc1RVRkJUU3hIUVVGSExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRelZDTEVsQlFVa3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU03V1VGQlJTeFRRVUZUTzFGQlF5OUNMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTMEZEYmtJN1NVRkZSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEyaERMRTlCUVU4c1NVRkJTU3haUVVGWkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGJFUXNRMEZCUXp0QlFVVkVPenM3T3p0SFFVdEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxFMUJRVTBzUTBGQlF5eERRVUZsTzBsQlEzQkRMRTFCUVUwc1QwRkJUeXhIUVVGWkxFVkJRVVVzUTBGQlF6dEpRVVUxUWl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVNMVFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUTNCRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJVZ3NUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0UlFVTndRaXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSVHRaUVVOdVFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF6dFRRVU4wUWp0aFFVRk5PMWxCUTB3c1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNN1UwRkRkRUk3U1VGRFNDeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVklMRTFCUVUwc1QwRkJUeXhIUVVGaExFVkJRVVVzUTBGQlF6dEpRVU0zUWl4TlFVRk5MRTFCUVUwc1IwRkJZU3hGUVVGRkxFTkJRVU03U1VGRE5VSXNUVUZCVFN4TlFVRk5MRWRCUVdFc1JVRkJSU3hEUVVGRE8wbEJSVFZDTEVsQlFVa3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0JDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRM1pETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMlF5eEpRVUZKTEVkQlFVY3NTMEZCU3l4VlFVRlZMRVZCUVVVN1dVRkRkRUlzVlVGQlZTeEhRVUZITEVkQlFVY3NRMEZCUXp0WlFVTnFRaXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTJoQ08xRkJRMFFzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOc1FpeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wdEJRM0JDTzBsQlJVUXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTTdRVUZEY2tNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUUd4cFkyVnVjMlZjYmlBcVhHNGdLaUJEYjNCNWNtbG5hSFFnTWpBeE9TQkhiMjluYkdVZ1RFeERMaUJCYkd3Z1VtbG5hSFJ6SUZKbGMyVnlkbVZrTGx4dUlDcGNiaUFxSUV4cFkyVnVjMlZrSUhWdVpHVnlJSFJvWlNCQmNHRmphR1VnVEdsalpXNXpaU3dnVm1WeWMybHZiaUF5TGpBZ0tIUm9aU0JjSWt4cFkyVnVjMlZjSWlrN1hHNGdLaUI1YjNVZ2JXRjVJRzV2ZENCMWMyVWdkR2hwY3lCbWFXeGxJR1Y0WTJWd2RDQnBiaUJqYjIxd2JHbGhibU5sSUhkcGRHZ2dkR2hsSUV4cFkyVnVjMlV1WEc0Z0tpQlpiM1VnYldGNUlHOWlkR0ZwYmlCaElHTnZjSGtnYjJZZ2RHaGxJRXhwWTJWdWMyVWdZWFJjYmlBcVhHNGdLaUFnSUNBZ2FIUjBjRG92TDNkM2R5NWhjR0ZqYUdVdWIzSm5MMnhwWTJWdWMyVnpMMHhKUTBWT1UwVXRNaTR3WEc0Z0tseHVJQ29nVlc1c1pYTnpJSEpsY1hWcGNtVmtJR0o1SUdGd2NHeHBZMkZpYkdVZ2JHRjNJRzl5SUdGbmNtVmxaQ0IwYnlCcGJpQjNjbWwwYVc1bkxDQnpiMlowZDJGeVpWeHVJQ29nWkdsemRISnBZblYwWldRZ2RXNWtaWElnZEdobElFeHBZMlZ1YzJVZ2FYTWdaR2x6ZEhKcFluVjBaV1FnYjI0Z1lXNGdYQ0pCVXlCSlUxd2lJRUpCVTBsVExGeHVJQ29nVjBsVVNFOVZWQ0JYUVZKU1FVNVVTVVZUSUU5U0lFTlBUa1JKVkVsUFRsTWdUMFlnUVU1WklFdEpUa1FzSUdWcGRHaGxjaUJsZUhCeVpYTnpJRzl5SUdsdGNHeHBaV1F1WEc0Z0tpQlRaV1VnZEdobElFeHBZMlZ1YzJVZ1ptOXlJSFJvWlNCemNHVmphV1pwWXlCc1lXNW5kV0ZuWlNCbmIzWmxjbTVwYm1jZ2NHVnliV2x6YzJsdmJuTWdZVzVrWEc0Z0tpQnNhVzFwZEdGMGFXOXVjeUIxYm1SbGNpQjBhR1VnVEdsalpXNXpaUzVjYmlBcUlEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4dUlDb3ZYRzVjYm1sdGNHOXlkQ0FxSUdGeklIVjBhV3h6SUdaeWIyMGdKeTR2ZFhScGJITW5PMXh1WEc1MGVYQmxJRVZ1ZEhKNUlEMGdleUIyWVd4MVpUb2diblZ0WW1WeU95QnliM2M2SUc1MWJXSmxjanNnWTI5c09pQnVkVzFpWlhJZ2ZUdGNibHh1THlvcVhHNGdLaUJKYm5SbGNtNWhiQ0F5TFdScGJXVnVjMmx2Ym1Gc0lITndZWEp6WlNCdFlYUnlhWGdnWTJ4aGMzTmNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRk53WVhKelpVMWhkSEpwZUNCN1hHNGdJSEJ5YVhaaGRHVWdaVzUwY21sbGN5QTlJRzVsZHlCTllYQThjM1J5YVc1bkxDQkZiblJ5ZVQ0b0tUdGNibHh1SUNCeVpXRmtiMjVzZVNCdVVtOTNjem9nYm5WdFltVnlJRDBnTUR0Y2JpQWdjbVZoWkc5dWJIa2dia052YkhNNklHNTFiV0psY2lBOUlEQTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9YRzRnSUNBZ2NtOTNjem9nYm5WdFltVnlXMTBnZkNCSmJuUXpNa0Z5Y21GNUxGeHVJQ0FnSUdOdmJITTZJRzUxYldKbGNsdGRJSHdnU1c1ME16SkJjbkpoZVN4Y2JpQWdJQ0IyWVd4MVpYTTZJRzUxYldKbGNsdGRJSHdnUm14dllYUXpNa0Z5Y21GNUxGeHVJQ0FnSUdScGJYTTZJRzUxYldKbGNsdGRYRzRnSUNrZ2UxeHVJQ0FnSUdsbUlDaHliM2R6TG14bGJtZDBhQ0FoUFQwZ1kyOXNjeTVzWlc1bmRHZ2dmSHdnY205M2N5NXNaVzVuZEdnZ0lUMDlJSFpoYkhWbGN5NXNaVzVuZEdncElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loY2JpQWdJQ0FnSUNBZ0ozSnZkM01zSUdOdmJITWdZVzVrSUhaaGJIVmxjeUJoY25KaGVYTWdiWFZ6ZENCaGJHd2dhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2duWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZSUFJFODZJRUZ6YzJWeWRDQjBhR0YwSUdScGJYTWdZWEpsSUd4bFoybDBMbHh1SUNBZ0lIUm9hWE11YmxKdmQzTWdQU0JrYVcxeld6QmRPMXh1SUNBZ0lIUm9hWE11YmtOdmJITWdQU0JrYVcxeld6RmRPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkbUZzZFdWekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnliM2NnUFNCeWIzZHpXMmxkTzF4dUlDQWdJQ0FnWTI5dWMzUWdZMjlzSUQwZ1kyOXNjMXRwWFR0Y2JpQWdJQ0FnSUhSb2FYTXVZMmhsWTJ0RWFXMXpLSEp2ZHl3Z1kyOXNLVHRjYmlBZ0lDQWdJR052Ym5OMElHdGxlU0E5SUhSb2FYTXViV0ZyWlV0bGVTaHliM2NzSUdOdmJDazdYRzRnSUNBZ0lDQjBhR2x6TG1WdWRISnBaWE11YzJWMEtHdGxlU3dnZXlCMllXeDFaVG9nZG1Gc2RXVnpXMmxkTENCeWIzY3NJR052YkNCOUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHMWhhMlZMWlhrb2NtOTNPaUJ1ZFcxaVpYSXNJR052YkRvZ2JuVnRZbVZ5S1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdZQ1I3Y205M2ZUb2tlMk52YkgxZ08xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmphR1ZqYTBScGJYTW9jbTkzT2lCdWRXMWlaWElzSUdOdmJEb2diblZ0WW1WeUtTQjdYRzRnSUNBZ1kyOXVjM1FnZDJsMGFHbHVRbTkxYm1SeklEMGdjbTkzSUR3Z2RHaHBjeTV1VW05M2N5QW1KaUJqYjJ3Z1BDQjBhR2x6TG01RGIyeHpPMXh1SUNBZ0lHbG1JQ2doZDJsMGFHbHVRbTkxYm1SektTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0ozSnZkeUJoYm1RdmIzSWdZMjlzSUhOd1pXTnBabWxsWkNCdmRYUnphV1JsSUc5bUlHMWhkSEpwZUNCa2FXMWxibk5wYjI1ekp5azdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjMlYwS0hKdmR6b2diblZ0WW1WeUxDQmpiMnc2SUc1MWJXSmxjaXdnZG1Gc2RXVTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lIUm9hWE11WTJobFkydEVhVzF6S0hKdmR5d2dZMjlzS1R0Y2JpQWdJQ0JqYjI1emRDQnJaWGtnUFNCMGFHbHpMbTFoYTJWTFpYa29jbTkzTENCamIyd3BPMXh1SUNBZ0lHbG1JQ2doZEdocGN5NWxiblJ5YVdWekxtaGhjeWhyWlhrcEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG1WdWRISnBaWE11YzJWMEtHdGxlU3dnZXlCMllXeDFaU3dnY205M0xDQmpiMndnZlNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFJvYVhNdVpXNTBjbWxsY3k1blpYUW9hMlY1S1NFdWRtRnNkV1VnUFNCMllXeDFaVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JuWlhRb2NtOTNPaUJ1ZFcxaVpYSXNJR052YkRvZ2JuVnRZbVZ5TENCa1pXWmhkV3gwVm1Gc2RXVWdQU0F3S1NCN1hHNGdJQ0FnTHk5MGFHbHpMbU5vWldOclJHbHRjeWh5YjNjc0lHTnZiQ2s3WEc0Z0lDQWdZMjl1YzNRZ2EyVjVJRDBnZEdocGN5NXRZV3RsUzJWNUtISnZkeXdnWTI5c0tUdGNiaUFnSUNCcFppQW9kR2hwY3k1bGJuUnlhV1Z6TG1oaGN5aHJaWGtwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWxiblJ5YVdWekxtZGxkQ2hyWlhrcElTNTJZV3gxWlR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHUmxabUYxYkhSV1lXeDFaVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JuWlhSQmJHd29iM0prWlhKbFpDQTlJSFJ5ZFdVcE9pQjdJSFpoYkhWbE9pQnVkVzFpWlhJN0lISnZkem9nYm5WdFltVnlPeUJqYjJ3NklHNTFiV0psY2lCOVcxMGdlMXh1SUNBZ0lHTnZibk4wSUhKdmQwTnZiRlpoYkhWbGN6b2dSVzUwY25sYlhTQTlJRzVsZHlCQmNuSmhlU2gwYUdsekxtVnVkSEpwWlhNdWMybDZaU2t1Wm1sc2JDaHVkV3hzS1R0Y2JpQWdJQ0JzWlhRZ2FTQTlJREE3WEc0Z0lDQWdkR2hwY3k1bGJuUnlhV1Z6TG1admNrVmhZMmdvZG1Gc2RXVWdQVDRnZTF4dUlDQWdJQ0FnY205M1EyOXNWbUZzZFdWelcya3JLMTBnUFNCMllXeDFaVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnBaaUFvYjNKa1pYSmxaQ2tnZTF4dUlDQWdJQ0FnTHk4Z1QzSmtaWEpwYm1jZ2RHaGxJSEpsYzNWc2RDQnBjMjRuZENCeVpYRjFhWEpsWkNCbWIzSWdjSEp2WTJWemMybHVaeUJpZFhRZ2FYUWdaRzlsY3lCdFlXdGxJR2wwSUdWaGMybGxjaUIwYnlCM2NtbDBaU0IwWlhOMGMxeHVJQ0FnSUNBZ2NtOTNRMjlzVm1Gc2RXVnpMbk52Y25Rb0tHRXNJR0lwSUQwK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0dFdWNtOTNJRDA5UFNCaUxuSnZkeWtnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCaExtTnZiQ0F0SUdJdVkyOXNPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJoTG5KdmR5QXRJR0l1Y205M08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhKdmQwTnZiRlpoYkhWbGN6dGNiaUFnZlZ4dVhHNGdJR2RsZEVScGJYTW9LVG9nYm5WdFltVnlXMTBnZTF4dUlDQWdJSEpsZEhWeWJpQmJkR2hwY3k1dVVtOTNjeXdnZEdocGN5NXVRMjlzYzEwN1hHNGdJSDFjYmx4dUlDQm5aWFJTYjNkektDazZJRzUxYldKbGNsdGRJSHRjYmlBZ0lISmxkSFZ5YmlCQmNuSmhlUzVtY205dEtIUm9hWE11Wlc1MGNtbGxjeXdnS0Z0clpYa3NJSFpoYkhWbFhTa2dQVDRnZG1Gc2RXVXVjbTkzS1R0Y2JpQWdJQzh2SUhKbGRIVnliaUIwYUdsekxuSnZkM01nWVhNZ2RXNXJibTkzYmlCaGN5QnVkVzFpWlhKYlhUdGNiaUFnZlZ4dVhHNGdJR2RsZEVOdmJITW9LVG9nYm5WdFltVnlXMTE3WEc0Z0lDQnlaWFIxY200Z1FYSnlZWGt1Wm5KdmJTaDBhR2x6TG1WdWRISnBaWE1zSUNoYmEyVjVMQ0IyWVd4MVpWMHBJRDArSUhaaGJIVmxMbU52YkNrN1hHNGdJQ0F2THlCeVpYUjFjbTRnZEdocGN5NWpiMnh6SUdGeklIVnVhMjV2ZDI0Z1lYTWdiblZ0WW1WeVcxMDdYRzRnSUgxY2JseHVJQ0JuWlhSV1lXeDFaWE1vS1RvZ2JuVnRZbVZ5VzEwZ2UxeHVJQ0J5WlhSMWNtNGdRWEp5WVhrdVpuSnZiU2gwYUdsekxtVnVkSEpwWlhNc0lDaGJhMlY1TENCMllXeDFaVjBwSUQwK0lIWmhiSFZsTG5aaGJIVmxLVHRjYmlBZ0x5OXlaWFIxY200Z2RHaHBjeTUyWVd4MVpYTWdZWE1nZFc1cmJtOTNiaUJoY3lCdWRXMWlaWEpiWFR0Y2JpQWdmVnh1WEc0Z0lHWnZja1ZoWTJnb1ptNDZJQ2gyWVd4MVpUb2diblZ0WW1WeUxDQnliM2M2SUc1MWJXSmxjaXdnWTI5c09pQnVkVzFpWlhJcElEMCtJSFp2YVdRcE9pQjJiMmxrSUh0Y2JpQWdJQ0IwYUdsekxtVnVkSEpwWlhNdVptOXlSV0ZqYUNoMllXeDFaU0E5UGlCbWJpaDJZV3gxWlM1MllXeDFaU3dnZG1Gc2RXVXVjbTkzTENCMllXeDFaUzVqYjJ3cEtUdGNiaUFnZlZ4dVhHNGdJRzFoY0NobWJqb2dLSFpoYkhWbE9pQnVkVzFpWlhJc0lISnZkem9nYm5WdFltVnlMQ0JqYjJ3NklHNTFiV0psY2lrZ1BUNGdiblZ0WW1WeUtUb2dVM0JoY25ObFRXRjBjbWw0SUh0Y2JpQWdJQ0JqYjI1emRDQjJZV3h6SUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNoMGFHbHpMbVZ1ZEhKcFpYTXVjMmw2WlNrN1hHNGdJQ0FnYkdWMElHa2dQU0F3WEc0Z0lDQWdkR2hwY3k1bGJuUnlhV1Z6TG1admNrVmhZMmdvZG1Gc2RXVWdQVDRnZTF4dUlDQWdJQ0FnZG1Gc2MxdHBLeXRkSUQwZ1ptNG9kbUZzZFdVdWRtRnNkV1VzSUhaaGJIVmxMbkp2ZHl3Z2RtRnNkV1V1WTI5c0tUdGNiaUFnSUNCOUtUdGNiaUFnSUNCamIyNXpkQ0JrYVcxeklEMGdXM1JvYVhNdWJsSnZkM01zSUhSb2FYTXVia052YkhOZE8xeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1UzQmhjbk5sVFdGMGNtbDRLSFJvYVhNdVoyVjBVbTkzY3lncExDQjBhR2x6TG1kbGRFTnZiSE1vS1N3Z2RtRnNjeUJoY3lCMWJtdHViM2R1SUdGeklHNTFiV0psY2x0ZExDQmthVzF6S1R0Y2JpQWdmVnh1WEc0Z0lIUnZRWEp5WVhrb0tTQjdYRzRnSUNBZ1kyOXVjM1FnY205M2N6b2dkVzVrWldacGJtVmtXMTBnUFNCMWRHbHNjeTVsYlhCMGVTaDBhR2x6TG01U2IzZHpLVHRjYmlBZ0lDQmpiMjV6ZENCdmRYUndkWFFnUFNCeWIzZHpMbTFoY0Nnb0tTQTlQaUI3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkWFJwYkhNdWVtVnliM01vZEdocGN5NXVRMjlzY3lrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnZEdocGN5NWxiblJ5YVdWekxtWnZja1ZoWTJnb2RtRnNkV1VnUFQ0Z2UxeHVJQ0FnSUNBZ2IzVjBjSFYwVzNaaGJIVmxMbkp2ZDExYmRtRnNkV1V1WTI5c1hTQTlJSFpoYkhWbExuWmhiSFZsTzF4dUlDQWdJSDBwTzF4dUlDQWdJSEpsZEhWeWJpQnZkWFJ3ZFhRN1hHNGdJSDFjYm4xY2JseHVMeW9xWEc0Z0tpQlVjbUZ1YzNCdmMyVWdZU0J6Y0dGeWMyVWdiV0YwY21sNFhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIwY21GdWMzQnZjMlVvYldGMGNtbDRPaUJUY0dGeWMyVk5ZWFJ5YVhncE9pQlRjR0Z5YzJWTllYUnlhWGdnZTF4dUlDQmpiMjV6ZENCdmJHUlNiM2R6SUQwZ2JXRjBjbWw0TG1kbGRGSnZkM01vS1R0Y2JpQWdZMjl1YzNRZ2IyeGtRMjlzY3lBOUlHMWhkSEpwZUM1blpYUkRiMnh6S0NrN1hHNGdJR052Ym5OMElHOXNaRlpoYkhNZ1BTQnRZWFJ5YVhndVoyVjBWbUZzZFdWektDazdYRzRnSUdOdmJuTjBJRzFoZEd4bGJpQTlJRzlzWkVOdmJITXViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQmpiMnh6SUQwZ2JtVjNJRWx1ZERNeVFYSnlZWGtvYldGMGJHVnVLVHRjYmlBZ1kyOXVjM1FnY205M2N5QTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHMWhkR3hsYmlrN1hHNGdJR052Ym5OMElIWmhiSE1nUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0cxaGRHeGxiaWs3WEc1Y2JpQWdZMjlzY3k1elpYUW9iMnhrVW05M2N5azdYRzRnSUhKdmQzTXVjMlYwS0c5c1pFTnZiSE1wTzF4dUlDQjJZV3h6TG5ObGRDaHZiR1JXWVd4ektUdGNiaUFnWTI5dWMzUWdaR2x0Y3lBOUlGdHRZWFJ5YVhndWJrTnZiSE1zSUcxaGRISnBlQzV1VW05M2MxMDdYRzRnSUhKbGRIVnliaUJ1WlhjZ1UzQmhjbk5sVFdGMGNtbDRLSEp2ZDNNc0lHTnZiSE1zSUhaaGJITXNJR1JwYlhNcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVOdmJuTjBjblZqZENCaElITndZWEp6WlNCcFpHVnVkR2wwZVNCdFlYUnlhWGhjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbGtaVzUwYVhSNUtITnBlbVU2SUc1MWJXSmxjbHRkS1RvZ1UzQmhjbk5sVFdGMGNtbDRJSHRjYmlBZ1kyOXVjM1FnVzNKdmQzTmRJRDBnYzJsNlpUdGNiaUFnWTI5dWMzUWdiV0YwY21sNElEMGdibVYzSUZOd1lYSnpaVTFoZEhKcGVDaGJYU3dnVzEwc0lGdGRMQ0J6YVhwbEtUdGNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCeWIzZHpPeUJwS3lzcElIdGNiaUFnSUNCdFlYUnlhWGd1YzJWMEtHa3NJR2tzSURFcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCdFlYUnlhWGc3WEc1OVhHNWNiaThxS2x4dUlDb2dSV3hsYldWdWRDMTNhWE5sSUcxMWJIUnBjR3hwWTJGMGFXOXVJRzltSUhSM2J5QnRZWFJ5YVdObGMxeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0dGcGNuZHBjMlZOZFd4MGFYQnNlU2hjYmlBZ1lUb2dVM0JoY25ObFRXRjBjbWw0TEZ4dUlDQmlPaUJUY0dGeWMyVk5ZWFJ5YVhoY2JpazZJRk53WVhKelpVMWhkSEpwZUNCN1hHNGdJSEpsZEhWeWJpQmxiR1Z0Wlc1MFYybHpaU2hoTENCaUxDQW9lQ3dnZVNrZ1BUNGdlQ0FxSUhrcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVWc1pXMWxiblF0ZDJselpTQmhaR1JwZEdsdmJpQnZaaUIwZDI4Z2JXRjBjbWxqWlhOY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR0ZrWkNoaE9pQlRjR0Z5YzJWTllYUnlhWGdzSUdJNklGTndZWEp6WlUxaGRISnBlQ2s2SUZOd1lYSnpaVTFoZEhKcGVDQjdYRzRnSUhKbGRIVnliaUJsYkdWdFpXNTBWMmx6WlNoaExDQmlMQ0FvZUN3Z2VTa2dQVDRnZUNBcklIa3BPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFVnNaVzFsYm5RdGQybHpaU0J6ZFdKMGNtRmpkR2x2YmlCdlppQjBkMjhnYldGMGNtbGpaWE5jYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlITjFZblJ5WVdOMEtHRTZJRk53WVhKelpVMWhkSEpwZUN3Z1lqb2dVM0JoY25ObFRXRjBjbWw0S1RvZ1UzQmhjbk5sVFdGMGNtbDRJSHRjYmlBZ2NtVjBkWEp1SUdWc1pXMWxiblJYYVhObEtHRXNJR0lzSUNoNExDQjVLU0E5UGlCNElDMGdlU2s3WEc1OVhHNWNiaThxS2x4dUlDb2dSV3hsYldWdWRDMTNhWE5sSUcxaGVHbHRkVzBnYjJZZ2RIZHZJRzFoZEhKcFkyVnpYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdFlYaHBiWFZ0S0dFNklGTndZWEp6WlUxaGRISnBlQ3dnWWpvZ1UzQmhjbk5sVFdGMGNtbDRLVG9nVTNCaGNuTmxUV0YwY21sNElIdGNiaUFnY21WMGRYSnVJR1ZzWlcxbGJuUlhhWE5sS0dFc0lHSXNJQ2g0TENCNUtTQTlQaUFvZUNBK0lIa2dQeUI0SURvZ2VTa3BPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGTmpZV3hoY2lCdGRXeDBhWEJzYVdOaGRHbHZiaUJ2WmlCMGQyOGdiV0YwY21salpYTmNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUcxMWJIUnBjR3g1VTJOaGJHRnlLR0U2SUZOd1lYSnpaVTFoZEhKcGVDd2djMk5oYkdGeU9pQnVkVzFpWlhJcE9pQlRjR0Z5YzJWTllYUnlhWGdnZTF4dUlDQnlaWFIxY200Z1lTNXRZWEFvS0haaGJIVmxPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVZ0tpQnpZMkZzWVhJN1hHNGdJSDBwTzF4dWZWeHVYRzR2S2lwY2JpQXFJRkpsZEhWeWJuTWdZU0J1WlhjZ2JXRjBjbWw0SUhkcGRHZ2dlbVZ5YnlCbGJuUnlhV1Z6SUhKbGJXOTJaV1F1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxiR2x0YVc1aGRHVmFaWEp2Y3lodE9pQlRjR0Z5YzJWTllYUnlhWGdwSUh0Y2JpQWdZMjl1YzNRZ2VtVnliMGx1WkdsalpYTWdQU0J1WlhjZ1UyVjBLQ2s3WEc0Z0lHTnZibk4wSUhaaGJIVmxjeUE5SUcwdVoyVjBWbUZzZFdWektDazdYRzRnSUdOdmJuTjBJSEp2ZDNNZ1BTQnRMbWRsZEZKdmQzTW9LVHRjYmlBZ1kyOXVjM1FnWTI5c2N5QTlJRzB1WjJWMFEyOXNjeWdwTzF4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFpoYkhWbGN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJR2xtSUNoMllXeDFaWE5iYVYwZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUhwbGNtOUpibVJwWTJWekxtRmtaQ2hwS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnWTI5dWMzUWdjbVZ0YjNabFFubGFaWEp2U1c1a1pYZ2dQU0FvWHpvZ1lXNTVMQ0JwYm1SbGVEb2diblZ0WW1WeUtTQTlQaUFoZW1WeWIwbHVaR2xqWlhNdWFHRnpLR2x1WkdWNEtUdGNiaUFnWTI5dWMzUWdibVY0ZEZaaGJIVmxjeUE5SUhaaGJIVmxjeTVtYVd4MFpYSW9jbVZ0YjNabFFubGFaWEp2U1c1a1pYZ3BPMXh1SUNCamIyNXpkQ0J1WlhoMFVtOTNjeUE5SUhKdmQzTXVabWxzZEdWeUtISmxiVzkyWlVKNVdtVnliMGx1WkdWNEtUdGNiaUFnWTI5dWMzUWdibVY0ZEVOdmJITWdQU0JqYjJ4ekxtWnBiSFJsY2loeVpXMXZkbVZDZVZwbGNtOUpibVJsZUNrN1hHNWNiaUFnY21WMGRYSnVJRzVsZHlCVGNHRnljMlZOWVhSeWFYZ29ibVY0ZEZKdmQzTXNJRzVsZUhSRGIyeHpMQ0J1WlhoMFZtRnNkV1Z6TENCdExtZGxkRVJwYlhNb0tTazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1RtOXliV0ZzYVhwaGRHbHZiaUJ2WmlCaElITndZWEp6WlNCdFlYUnlhWGd1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnViM0p0WVd4cGVtVW9iVG9nVTNCaGNuTmxUV0YwY21sNExDQnViM0p0Vkhsd1pTQTlJRTV2Y20xVWVYQmxMbXd5S1NCN1hHNGdJR052Ym5OMElHNXZjbTFHYmlBOUlHNXZjbTFHYm5OYmJtOXliVlI1Y0dWZE8xeHVYRzRnSUdOdmJuTjBJR052YkhOQ2VWSnZkeUE5SUc1bGR5Qk5ZWEE4Ym5WdFltVnlMQ0J1ZFcxaVpYSmJYVDRvS1R0Y2JpQWdiUzVtYjNKRllXTm9LQ2hmTENCeWIzY3NJR052YkNrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdOdmJITWdQU0JqYjJ4elFubFNiM2N1WjJWMEtISnZkeWtnZkh3Z1cxMDdYRzRnSUNBZ1kyOXNjeTV3ZFhOb0tHTnZiQ2s3WEc0Z0lDQWdZMjlzYzBKNVVtOTNMbk5sZENoeWIzY3NJR052YkhNcE8xeHVJQ0I5S1R0Y2JseHVJQ0JqYjI1emRDQnVaWGgwVFdGMGNtbDRJRDBnYm1WM0lGTndZWEp6WlUxaGRISnBlQ2hiWFN3Z1cxMHNJRnRkTENCdExtZGxkRVJwYlhNb0tTazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2NtOTNJRzltSUdOdmJITkNlVkp2ZHk1clpYbHpLQ2twSUh0Y2JpQWdJQ0JqYjI1emRDQmpiMnh6SUQwZ1kyOXNjMEo1VW05M0xtZGxkQ2h5YjNjcElTNXpiM0owS0NrN1hHNWNiaUFnSUNCamIyNXpkQ0IyWVd4eklEMGdZMjlzY3k1dFlYQW9ZMjlzSUQwK0lHMHVaMlYwS0hKdmR5d2dZMjlzS1NrN1hHNGdJQ0FnWTI5dWMzUWdibTl5YlNBOUlHNXZjbTFHYmloMllXeHpLVHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzV2Y20wdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJRzVsZUhSTllYUnlhWGd1YzJWMEtISnZkeXdnWTI5c2MxdHBYU3dnYm05eWJWdHBYU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY21WMGRYSnVJRzVsZUhSTllYUnlhWGc3WEc1OVhHNWNiaThxS2x4dUlDb2dWbVZqZEc5eUlHNXZjbTFoYkdsNllYUnBiMjRnWm5WdVkzUnBiMjV6WEc0Z0tpOWNiblI1Y0dVZ1RtOXliVVp1Y3lBOUlIc2dXMnRsZVNCcGJpQk9iM0p0Vkhsd1pWMDZJQ2gyT2lCdWRXMWlaWEpiWFNrZ1BUNGdiblZ0WW1WeVcxMGdmVHRjYm1OdmJuTjBJRzV2Y20xR2JuTTZJRTV2Y20xR2JuTWdQU0I3WEc0Z0lGdE9iM0p0Vkhsd1pTNXRZWGhkT2lBb2VITTZJRzUxYldKbGNsdGRLU0E5UGlCN1hHNGdJQ0FnYkdWMElHMWhlQ0E5SUMxSmJtWnBibWwwZVR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhoekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0J0WVhnZ1BTQjRjMXRwWFNBK0lHMWhlQ0EvSUhoelcybGRJRG9nYldGNE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdlSE11YldGd0tIZ2dQVDRnZUNBdklHMWhlQ2s3WEc0Z0lIMHNYRzRnSUZ0T2IzSnRWSGx3WlM1c01WMDZJQ2g0Y3pvZ2JuVnRZbVZ5VzEwcElEMCtJSHRjYmlBZ0lDQnNaWFFnYzNWdElEMGdNRHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSGh6TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQnpkVzBnS3owZ2VITmJhVjA3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCNGN5NXRZWEFvZUNBOVBpQjRJQzhnYzNWdEtUdGNiaUFnZlN4Y2JpQWdXMDV2Y20xVWVYQmxMbXd5WFRvZ0tIaHpPaUJ1ZFcxaVpYSmJYU2tnUFQ0Z2UxeHVJQ0FnSUd4bGRDQnpkVzBnUFNBd08xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2VITXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUhOMWJTQXJQU0I0YzF0cFhTQXFLaUF5TzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2VITXViV0Z3S0hnZ1BUNGdUV0YwYUM1emNYSjBLSGdnS2lvZ01pQXZJSE4xYlNrcE8xeHVJQ0I5TEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHVnVkVzBnVG05eWJWUjVjR1VnZTF4dUlDQnRZWGdnUFNBbmJXRjRKeXhjYmlBZ2JERWdQU0FuYkRFbkxGeHVJQ0JzTWlBOUlDZHNNaWNzWEc1OVhHNWNiaThxS2x4dUlDb2dTR1ZzY0dWeUlHWjFibU4wYVc5dUlHWnZjaUJsYkdWdFpXNTBMWGRwYzJVZ2IzQmxjbUYwYVc5dWN5NWNiaUFxTDF4dVpuVnVZM1JwYjI0Z1pXeGxiV1Z1ZEZkcGMyVW9YRzRnSUdFNklGTndZWEp6WlUxaGRISnBlQ3hjYmlBZ1lqb2dVM0JoY25ObFRXRjBjbWw0TEZ4dUlDQnZjRG9nS0hnNklHNTFiV0psY2l3Z2VUb2diblZ0WW1WeUtTQTlQaUJ1ZFcxaVpYSmNiaWs2SUZOd1lYSnpaVTFoZEhKcGVDQjdYRzRnSUdOdmJuTjBJSFpwYzJsMFpXUWdQU0J1WlhjZ1UyVjBQSE4wY21sdVp6NG9LVHRjYmlBZ1kyOXVjM1FnY205M2N6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ1kyOXNjem9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnWTI5dWMzUWdkbUZzY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmx4dUlDQmpiMjV6ZENCdmNHVnlZWFJsSUQwZ0tISnZkem9nYm5WdFltVnlMQ0JqYjJ3NklHNTFiV0psY2lrZ1BUNGdlMXh1SUNBZ0lISnZkM011Y0hWemFDaHliM2NwTzF4dUlDQWdJR052YkhNdWNIVnphQ2hqYjJ3cE8xeHVJQ0FnSUdOdmJuTjBJRzVsZUhSV1lXeDFaU0E5SUc5d0tHRXVaMlYwS0hKdmR5d2dZMjlzS1N3Z1lpNW5aWFFvY205M0xDQmpiMndwS1R0Y2JpQWdJQ0IyWVd4ekxuQjFjMmdvYm1WNGRGWmhiSFZsS1R0Y2JpQWdmVHRjYmlBZ1kyOXVjM1FnZG1Gc2RXVnpRU0E5SUdFdVoyVjBWbUZzZFdWektDazdYRzRnSUdOdmJuTjBJSEp2ZDNOQklEMGdZUzVuWlhSU2IzZHpLQ2s3WEc0Z0lHTnZibk4wSUdOdmJITkJJRDBnWVM1blpYUkRiMnh6S0NrN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZG1Gc2RXVnpRUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUdOdmJuTjBJSEp2ZHlBOUlISnZkM05CVzJsZE8xeHVJQ0FnSUdOdmJuTjBJR052YkNBOUlHTnZiSE5CVzJsZE8xeHVJQ0FnSUdOdmJuTjBJR3RsZVNBOUlHQWtlM0p2ZDMwNkpIdGpiMng5WUR0Y2JpQWdJQ0IyYVhOcGRHVmtMbUZrWkNoclpYa3BPMXh1SUNBZ0lHOXdaWEpoZEdVb2NtOTNMQ0JqYjJ3cE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2RtRnNkV1Z6UWlBOUlHSXVaMlYwVm1Gc2RXVnpLQ2s3WEc0Z0lHTnZibk4wSUhKdmQzTkNJRDBnWWk1blpYUlNiM2R6S0NrN1hHNGdJR052Ym5OMElHTnZiSE5DSUQwZ1lpNW5aWFJEYjJ4ektDazdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RtRnNkV1Z6UWk1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lHTnZibk4wSUhKdmR5QTlJSEp2ZDNOQ1cybGRPMXh1SUNBZ0lHTnZibk4wSUdOdmJDQTlJR052YkhOQ1cybGRPMXh1SUNBZ0lHTnZibk4wSUd0bGVTQTlJR0FrZTNKdmQzMDZKSHRqYjJ4OVlEdGNiaUFnSUNCcFppQW9kbWx6YVhSbFpDNW9ZWE1vYTJWNUtTa2dZMjl1ZEdsdWRXVTdYRzRnSUNBZ2IzQmxjbUYwWlNoeWIzY3NJR052YkNrN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCa2FXMXpJRDBnVzJFdWJsSnZkM01zSUdFdWJrTnZiSE5kTzF4dUlDQnlaWFIxY200Z2JtVjNJRk53WVhKelpVMWhkSEpwZUNoeWIzZHpMQ0JqYjJ4ekxDQjJZV3h6TENCa2FXMXpLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQklaV3h3WlhJZ1puVnVZM1JwYjI0Z1ptOXlJR2RsZEhScGJtY2daR0YwWVN3Z2FXNWthV05sY3l3Z1lXNWtJR2x1Y0hSeUlHRnljbUY1Y3lCbWNtOXRJR0VnYzNCaGNuTmxYRzRnS2lCdFlYUnlhWGdnZEc4Z1ptOXNiRzkzSUdOemNpQnRZWFJ5YVhnZ1kyOXVkbVZ1ZEdsdmJuTXVJRk4xY0dWeUlHbHVaV1ptYVdOcFpXNTBJQ2hoYm1RZ2EybHVaQ0J2Wmx4dUlDb2daR1ZtWldGMGN5QjBhR1VnY0hWeWNHOXpaU0J2WmlCMGFHbHpJR052Ym5abGJuUnBiMjRwSUdKMWRDQmhJR3h2ZENCdlppQjBhR1VnY0c5eWRHVmtJSEI1ZEdodmJpQjBjbVZsWEc0Z0tpQnpaV0Z5WTJnZ2JHOW5hV01nWkdWd1pXNWtjeUJ2YmlCMGFHbHpJR1JoZEdFZ1ptOXliV0YwTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwUTFOU0tIZzZJRk53WVhKelpVMWhkSEpwZUNrZ2UxeHVJQ0JqYjI1emRDQmxiblJ5YVdWek9pQkZiblJ5ZVZ0ZElEMGdXMTA3WEc1Y2JpQWdlQzVtYjNKRllXTm9LQ2gyWVd4MVpTd2djbTkzTENCamIyd3BJRDArSUh0Y2JpQWdJQ0JsYm5SeWFXVnpMbkIxYzJnb2V5QjJZV3gxWlN3Z2NtOTNMQ0JqYjJ3Z2ZTazdYRzRnSUgwcE8xeHVYRzRnSUdWdWRISnBaWE11YzI5eWRDZ29ZU3dnWWlrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2hoTG5KdmR5QTlQVDBnWWk1eWIzY3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhMbU52YkNBdElHSXVZMjlzTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lTNXliM2NnTFNCaUxuSnZkenRjYmlBZ0lDQjlYRzRnSUgwcE8xeHVYRzRnSUdOdmJuTjBJR2x1WkdsalpYTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJR052Ym5OMElIWmhiSFZsY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYVc1a2NIUnlPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVYRzRnSUd4bGRDQmpkWEp5Wlc1MFVtOTNJRDBnTFRFN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWlc1MGNtbGxjeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnY205M0xDQmpiMndzSUhaaGJIVmxJSDBnUFNCbGJuUnlhV1Z6VzJsZE8xeHVJQ0FnSUdsbUlDaHliM2NnSVQwOUlHTjFjbkpsYm5SU2IzY3BJSHRjYmlBZ0lDQWdJR04xY25KbGJuUlNiM2NnUFNCeWIzYzdYRzRnSUNBZ0lDQnBibVJ3ZEhJdWNIVnphQ2hwS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhVzVrYVdObGN5NXdkWE5vS0dOdmJDazdYRzRnSUNBZ2RtRnNkV1Z6TG5CMWMyZ29kbUZzZFdVcE8xeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlIc2dhVzVrYVdObGN5d2dkbUZzZFdWekxDQnBibVJ3ZEhJZ2ZUdGNibjFjYmlKZGZRPT0iLCIvKipcbiAqIEBsaWNlbnNlXG4gKlxuICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLyoqXG4gKiBUaGlzIGlzIGEgSmF2YVNjcmlwdCByZWltcGxlbWVudGF0aW9uIG9mIFVNQVAgKG9yaWdpbmFsIGxpY2Vuc2UgYmVsb3cpLCBmcm9tXG4gKiB0aGUgcHl0aG9uIGltcGxlbWVudGF0aW9uIGZvdW5kIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9sbWNpbm5lcy91bWFwLlxuICpcbiAqIEBhdXRob3IgYW5keWNvZW5lbkBnb29nbGUuY29tIChBbmR5IENvZW5lbilcbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQlNEIDMtQ2xhdXNlIExpY2Vuc2VcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTcsIExlbGFuZCBNY0lubmVzXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG4gKlxuICogKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXNcbiAqICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG4gKlxuICogKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsXG4gKiAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb25cbiAqICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKlxuICogKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzXG4gKiAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tXG4gKiAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG4gKlxuICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCJcbiAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEVcbiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRVxuICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUxcbiAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SXG4gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUlxuICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSxcbiAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFXG4gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICovXG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCBjbGFzcyBGbGF0VHJlZSB7XG4gICAgY29uc3RydWN0b3IoaHlwZXJwbGFuZXMsIG9mZnNldHMsIGNoaWxkcmVuLCBpbmRpY2VzKSB7XG4gICAgICAgIHRoaXMuaHlwZXJwbGFuZXMgPSBoeXBlcnBsYW5lcztcbiAgICAgICAgdGhpcy5vZmZzZXRzID0gb2Zmc2V0cztcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgICAgICB0aGlzLmluZGljZXMgPSBpbmRpY2VzO1xuICAgIH1cbn1cbi8qKlxuICogQnVpbGQgYSByYW5kb20gcHJvamVjdGlvbiBmb3Jlc3Qgd2l0aCBgYG5UcmVlc2BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZUZvcmVzdChkYXRhLCBuTmVpZ2hib3JzLCBuVHJlZXMsIHJhbmRvbSkge1xuICAgIGNvbnN0IGxlYWZTaXplID0gTWF0aC5tYXgoMTAsIG5OZWlnaGJvcnMpO1xuICAgIGNvbnN0IHRyZWVzID0gdXRpbHNcbiAgICAgICAgLnJhbmdlKG5UcmVlcylcbiAgICAgICAgLm1hcCgoXywgaSkgPT4gbWFrZVRyZWUoZGF0YSwgbGVhZlNpemUsIGksIHJhbmRvbSkpO1xuICAgIGNvbnN0IGZvcmVzdCA9IHRyZWVzLm1hcCh0cmVlID0+IGZsYXR0ZW5UcmVlKHRyZWUsIGxlYWZTaXplKSk7XG4gICAgcmV0dXJuIGZvcmVzdDtcbn1cbi8qKlxuICogQ29uc3RydWN0IGEgcmFuZG9tIHByb2plY3Rpb24gdHJlZSBiYXNlZCBvbiBgYGRhdGFgYCB3aXRoIGxlYXZlc1xuICogb2Ygc2l6ZSBhdCBtb3N0IGBgbGVhZlNpemVgYFxuICovXG5mdW5jdGlvbiBtYWtlVHJlZShkYXRhLCBsZWFmU2l6ZSA9IDMwLCBuLCByYW5kb20pIHtcbiAgICBjb25zdCBpbmRpY2VzID0gdXRpbHMucmFuZ2UoZGF0YS5sZW5ndGgpO1xuICAgIGNvbnN0IHRyZWUgPSBtYWtlRXVjbGlkZWFuVHJlZShkYXRhLCBpbmRpY2VzLCBsZWFmU2l6ZSwgbiwgcmFuZG9tKTtcbiAgICByZXR1cm4gdHJlZTtcbn1cbmZ1bmN0aW9uIG1ha2VFdWNsaWRlYW5UcmVlKGRhdGEsIGluZGljZXMsIGxlYWZTaXplID0gMzAsIHEsIHJhbmRvbSkge1xuICAgIGlmIChpbmRpY2VzLmxlbmd0aCA+IGxlYWZTaXplKSB7XG4gICAgICAgIGNvbnN0IHNwbGl0UmVzdWx0cyA9IGV1Y2xpZGVhblJhbmRvbVByb2plY3Rpb25TcGxpdChkYXRhLCBpbmRpY2VzLCByYW5kb20pO1xuICAgICAgICBjb25zdCB7IGluZGljZXNMZWZ0LCBpbmRpY2VzUmlnaHQsIGh5cGVycGxhbmUsIG9mZnNldCB9ID0gc3BsaXRSZXN1bHRzO1xuICAgICAgICBjb25zdCBsZWZ0Q2hpbGQgPSBtYWtlRXVjbGlkZWFuVHJlZShkYXRhLCBpbmRpY2VzTGVmdCwgbGVhZlNpemUsIHEgKyAxLCByYW5kb20pO1xuICAgICAgICBjb25zdCByaWdodENoaWxkID0gbWFrZUV1Y2xpZGVhblRyZWUoZGF0YSwgaW5kaWNlc1JpZ2h0LCBsZWFmU2l6ZSwgcSArIDEsIHJhbmRvbSk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB7IGxlZnRDaGlsZCwgcmlnaHRDaGlsZCwgaXNMZWFmOiBmYWxzZSwgaHlwZXJwbGFuZSwgb2Zmc2V0IH07XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHsgaW5kaWNlcywgaXNMZWFmOiB0cnVlIH07XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBzZXQgb2YgYGBpbmRpY2VzYGAgZm9yIGRhdGEgcG9pbnRzIGZyb20gYGBkYXRhYGAsIGNyZWF0ZVxuICogYSByYW5kb20gaHlwZXJwbGFuZSB0byBzcGxpdCB0aGUgZGF0YSwgcmV0dXJuaW5nIHR3byBhcnJheXMgaW5kaWNlc1xuICogdGhhdCBmYWxsIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBoeXBlcnBsYW5lLiBUaGlzIGlzIHRoZSBiYXNpcyBmb3IgYVxuICogcmFuZG9tIHByb2plY3Rpb24gdHJlZSwgd2hpY2ggc2ltcGx5IHVzZXMgdGhpcyBzcGxpdHRpbmcgcmVjdXJzaXZlbHkuXG4gKiBUaGlzIHBhcnRpY3VsYXIgc3BsaXQgdXNlcyBldWNsaWRlYW4gZGlzdGFuY2UgdG8gZGV0ZXJtaW5lIHRoZSBoeXBlcnBsYW5lXG4gKiBhbmQgd2hpY2ggc2lkZSBlYWNoIGRhdGEgc2FtcGxlIGZhbGxzIG9uLlxuICovXG5mdW5jdGlvbiBldWNsaWRlYW5SYW5kb21Qcm9qZWN0aW9uU3BsaXQoZGF0YSwgaW5kaWNlcywgcmFuZG9tKSB7XG4gICAgY29uc3QgZGltID0gMTtcbiAgICAvLyBTZWxlY3QgdHdvIHJhbmRvbSBwb2ludHMsIHNldCB0aGUgaHlwZXJwbGFuZSBiZXR3ZWVuIHRoZW1cbiAgICBsZXQgbGVmdEluZGV4ID0gdXRpbHMudGF1UmFuZEludChpbmRpY2VzLmxlbmd0aCwgcmFuZG9tKTtcbiAgICBsZXQgcmlnaHRJbmRleCA9IHV0aWxzLnRhdVJhbmRJbnQoaW5kaWNlcy5sZW5ndGgsIHJhbmRvbSk7XG4gICAgcmlnaHRJbmRleCArPSBsZWZ0SW5kZXggPT09IHJpZ2h0SW5kZXggPyAxIDogMDtcbiAgICByaWdodEluZGV4ID0gcmlnaHRJbmRleCAlIGluZGljZXMubGVuZ3RoO1xuICAgIGNvbnN0IGxlZnQgPSBpbmRpY2VzW2xlZnRJbmRleF07XG4gICAgY29uc3QgcmlnaHQgPSBpbmRpY2VzW3JpZ2h0SW5kZXhdO1xuICAgIC8vIENvbXB1dGUgdGhlIG5vcm1hbCB2ZWN0b3IgdG8gdGhlIGh5cGVycGxhbmUgKHRoZSB2ZWN0b3IgYmV0d2VlbiB0aGUgdHdvXG4gICAgLy8gcG9pbnRzKSBhbmQgdGhlIG9mZnNldCBmcm9tIHRoZSBvcmlnaW5cbiAgICBsZXQgaHlwZXJwbGFuZU9mZnNldCA9IDA7XG4gICAgbGV0IGh5cGVycGxhbmVWZWN0b3IgPSAwO1xuICAgIGh5cGVycGxhbmVWZWN0b3IgPSBkYXRhW2xlZnRdIC0gZGF0YVtyaWdodF07XG4gICAgaHlwZXJwbGFuZU9mZnNldCAtPVxuICAgICAgICAoaHlwZXJwbGFuZVZlY3RvciAqIChkYXRhW2xlZnRdICsgZGF0YVtyaWdodF0pKSAvIDIuMDtcbiAgICAvLyBGb3IgZWFjaCBwb2ludCBjb21wdXRlIHRoZSBtYXJnaW4gKHByb2plY3QgaW50byBub3JtYWwgdmVjdG9yKVxuICAgIC8vIElmIHdlIGFyZSBvbiBsb3dlciBzaWRlIG9mIHRoZSBoeXBlcnBsYW5lIHB1dCBpbiBvbmUgcGlsZSwgb3RoZXJ3aXNlXG4gICAgLy8gcHV0IGl0IGluIHRoZSBvdGhlciBwaWxlIChpZiB3ZSBoaXQgaHlwZXJwbGFuZSBvbiB0aGUgbm9zZSwgZmxpcCBhIGNvaW4pXG4gICAgbGV0IG5MZWZ0ID0gMDtcbiAgICBsZXQgblJpZ2h0ID0gMDtcbiAgICBjb25zdCBzaWRlID0gdXRpbHMuemVyb3MoaW5kaWNlcy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgbWFyZ2luID0gaHlwZXJwbGFuZU9mZnNldDtcbiAgICAgICAgbWFyZ2luICs9IGh5cGVycGxhbmVWZWN0b3IgKiBkYXRhW2luZGljZXNbaV1dO1xuICAgICAgICBpZiAobWFyZ2luID09PSAwKSB7XG4gICAgICAgICAgICBzaWRlW2ldID0gdXRpbHMudGF1UmFuZEludCgyLCByYW5kb20pO1xuICAgICAgICAgICAgaWYgKHNpZGVbaV0gPT09IDApIHtcbiAgICAgICAgICAgICAgICBuTGVmdCArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgblJpZ2h0ICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobWFyZ2luID4gMCkge1xuICAgICAgICAgICAgc2lkZVtpXSA9IDA7XG4gICAgICAgICAgICBuTGVmdCArPSAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2lkZVtpXSA9IDE7XG4gICAgICAgICAgICBuUmlnaHQgKz0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIHRoZSBjb3VudHMsIGFsbG9jYXRlIGFycmF5c1xuICAgIGNvbnN0IGluZGljZXNMZWZ0ID0gdXRpbHMuemVyb3MobkxlZnQpO1xuICAgIGNvbnN0IGluZGljZXNSaWdodCA9IHV0aWxzLnplcm9zKG5SaWdodCk7XG4gICAgLy8gUG9wdWxhdGUgdGhlIGFycmF5cyB3aXRoIGluZGljZXMgYWNjb3JkaW5nIHRvIHdoaWNoIHNpZGUgdGhleSBmZWxsIG9uXG4gICAgbkxlZnQgPSAwO1xuICAgIG5SaWdodCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaWRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzaWRlW2ldID09PSAwKSB7XG4gICAgICAgICAgICBpbmRpY2VzTGVmdFtuTGVmdF0gPSBpbmRpY2VzW2ldO1xuICAgICAgICAgICAgbkxlZnQgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGluZGljZXNSaWdodFtuUmlnaHRdID0gaW5kaWNlc1tpXTtcbiAgICAgICAgICAgIG5SaWdodCArPSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGluZGljZXNMZWZ0LFxuICAgICAgICBpbmRpY2VzUmlnaHQsXG4gICAgICAgIGh5cGVycGxhbmU6IGh5cGVycGxhbmVWZWN0b3IsXG4gICAgICAgIG9mZnNldDogaHlwZXJwbGFuZU9mZnNldCxcbiAgICB9O1xufVxuZnVuY3Rpb24gZmxhdHRlblRyZWUodHJlZSwgbGVhZlNpemUpIHtcbiAgICBjb25zdCBuTm9kZXMgPSBudW1Ob2Rlcyh0cmVlKTtcbiAgICBjb25zdCBuTGVhdmVzID0gbnVtTGVhdmVzKHRyZWUpO1xuICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IHNwYXJzZSBjb2RlIGlzIG5vdCByZWxldmFudC4uLlxuICAgIGNvbnN0IGh5cGVycGxhbmVzID0gdXRpbHNcbiAgICAgICAgLnJhbmdlKG5Ob2RlcylcbiAgICAgICAgLm1hcCgoKSA9PiB0cmVlLmh5cGVycGxhbmUgPyAxIDogMCk7XG4gICAgY29uc3Qgb2Zmc2V0cyA9IHV0aWxzLnplcm9zKG5Ob2Rlcyk7XG4gICAgY29uc3QgY2hpbGRyZW4gPSB1dGlscy5yYW5nZShuTm9kZXMpLm1hcCgoKSA9PiBbLTEsIC0xXSk7XG4gICAgY29uc3QgaW5kaWNlcyA9IHV0aWxzXG4gICAgICAgIC5yYW5nZShuTGVhdmVzKVxuICAgICAgICAubWFwKCgpID0+IHV0aWxzLnJhbmdlKGxlYWZTaXplKS5tYXAoKCkgPT4gLTEpKTtcbiAgICByZWN1cnNpdmVGbGF0dGVuKHRyZWUsIGh5cGVycGxhbmVzLCBvZmZzZXRzLCBjaGlsZHJlbiwgaW5kaWNlcywgMCwgMCk7XG4gICAgcmV0dXJuIG5ldyBGbGF0VHJlZShoeXBlcnBsYW5lcywgb2Zmc2V0cywgY2hpbGRyZW4sIGluZGljZXMpO1xufVxuZnVuY3Rpb24gcmVjdXJzaXZlRmxhdHRlbih0cmVlLCBoeXBlcnBsYW5lcywgb2Zmc2V0cywgY2hpbGRyZW4sIGluZGljZXMsIG5vZGVOdW0sIGxlYWZOdW0pIHtcbiAgICBpZiAodHJlZS5pc0xlYWYpIHtcbiAgICAgICAgY2hpbGRyZW5bbm9kZU51bV1bMF0gPSAtbGVhZk51bTtcbiAgICAgICAgLy8gVE9ETzogVHJpcGxlIGNoZWNrIHRoaXMgb3BlcmF0aW9uIGNvcnJlc3BvbmRzIHRvXG4gICAgICAgIC8vIGluZGljZXNbbGVhZk51bSA6IHRyZWUuaW5kaWNlcy5zaGFwZVswXV0gPSB0cmVlLmluZGljZXNcbiAgICAgICAgaW5kaWNlc1tsZWFmTnVtXS5zcGxpY2UoMCwgdHJlZS5pbmRpY2VzLmxlbmd0aCwgLi4udHJlZS5pbmRpY2VzKTtcbiAgICAgICAgbGVhZk51bSArPSAxO1xuICAgICAgICByZXR1cm4geyBub2RlTnVtLCBsZWFmTnVtIH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBoeXBlcnBsYW5lc1tub2RlTnVtXSA9IHRyZWUuaHlwZXJwbGFuZTtcbiAgICAgICAgb2Zmc2V0c1tub2RlTnVtXSA9IHRyZWUub2Zmc2V0O1xuICAgICAgICBjaGlsZHJlbltub2RlTnVtXVswXSA9IG5vZGVOdW0gKyAxO1xuICAgICAgICBjb25zdCBvbGROb2RlTnVtID0gbm9kZU51bTtcbiAgICAgICAgbGV0IHJlcyA9IHJlY3Vyc2l2ZUZsYXR0ZW4odHJlZS5sZWZ0Q2hpbGQsIGh5cGVycGxhbmVzLCBvZmZzZXRzLCBjaGlsZHJlbiwgaW5kaWNlcywgbm9kZU51bSArIDEsIGxlYWZOdW0pO1xuICAgICAgICBub2RlTnVtID0gcmVzLm5vZGVOdW07XG4gICAgICAgIGxlYWZOdW0gPSByZXMubGVhZk51bTtcbiAgICAgICAgY2hpbGRyZW5bb2xkTm9kZU51bV1bMV0gPSBub2RlTnVtICsgMTtcbiAgICAgICAgcmVzID0gcmVjdXJzaXZlRmxhdHRlbih0cmVlLnJpZ2h0Q2hpbGQsIGh5cGVycGxhbmVzLCBvZmZzZXRzLCBjaGlsZHJlbiwgaW5kaWNlcywgbm9kZU51bSArIDEsIGxlYWZOdW0pO1xuICAgICAgICByZXR1cm4geyBub2RlTnVtOiByZXMubm9kZU51bSwgbGVhZk51bTogcmVzLmxlYWZOdW0gfTtcbiAgICB9XG59XG5mdW5jdGlvbiBudW1Ob2Rlcyh0cmVlKSB7XG4gICAgaWYgKHRyZWUuaXNMZWFmKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDEgKyBudW1Ob2Rlcyh0cmVlLmxlZnRDaGlsZCkgKyBudW1Ob2Rlcyh0cmVlLnJpZ2h0Q2hpbGQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG51bUxlYXZlcyh0cmVlKSB7XG4gICAgaWYgKHRyZWUuaXNMZWFmKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bUxlYXZlcyh0cmVlLmxlZnRDaGlsZCkgKyBudW1MZWF2ZXModHJlZS5yaWdodENoaWxkKTtcbiAgICB9XG59XG4vKipcbiAqIEdlbmVyYXRlIGFuIGFycmF5IG9mIHNldHMgb2YgY2FuZGlkYXRlIG5lYXJlc3QgbmVpZ2hib3JzIGJ5XG4gKiBjb25zdHJ1Y3RpbmcgYSByYW5kb20gcHJvamVjdGlvbiBmb3Jlc3QgYW5kIHRha2luZyB0aGUgbGVhdmVzIG9mIGFsbCB0aGVcbiAqIHRyZWVzLiBBbnkgZ2l2ZW4gdHJlZSBoYXMgbGVhdmVzIHRoYXQgYXJlIGEgc2V0IG9mIHBvdGVudGlhbCBuZWFyZXN0XG4gKiBuZWlnaGJvcnMuIEdpdmVuIGVub3VnaCB0cmVlcyB0aGUgc2V0IG9mIGFsbCBzdWNoIGxlYXZlcyBnaXZlcyBhIGdvb2RcbiAqIGxpa2VsaWhvb2Qgb2YgZ2V0dGluZyBhIGdvb2Qgc2V0IG9mIG5lYXJlc3QgbmVpZ2hib3JzIGluIGNvbXBvc2l0ZS4gU2luY2VcbiAqIHN1Y2ggYSByYW5kb20gcHJvamVjdGlvbiBmb3Jlc3QgaXMgaW5leHBlbnNpdmUgdG8gY29tcHV0ZSwgdGhpcyBjYW4gYmUgYVxuICogdXNlZnVsIG1lYW5zIG9mIHNlZWRpbmcgb3RoZXIgbmVhcmVzdCBuZWlnaGJvciBhbGdvcml0aG1zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZUxlYWZBcnJheShycEZvcmVzdCkge1xuICAgIGlmIChycEZvcmVzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IFtdO1xuICAgICAgICBmb3IgKGxldCB0cmVlIG9mIHJwRm9yZXN0KSB7XG4gICAgICAgICAgICBvdXRwdXQucHVzaCguLi50cmVlLmluZGljZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gW1stMV1dO1xuICAgIH1cbn1cbi8qKlxuICogU2VsZWN0cyB0aGUgc2lkZSBvZiB0aGUgdHJlZSB0byBzZWFyY2ggZHVyaW5nIGZsYXQgdHJlZSBzZWFyY2guXG4gKi9cbmZ1bmN0aW9uIHNlbGVjdFNpZGUoaHlwZXJwbGFuZSwgb2Zmc2V0LCBwb2ludCwgcmFuZG9tKSB7XG4gICAgbGV0IG1hcmdpbiA9IG9mZnNldDtcbiAgICBtYXJnaW4gKz0gaHlwZXJwbGFuZSAqIHBvaW50O1xuICAgIGlmIChtYXJnaW4gPT09IDApIHtcbiAgICAgICAgY29uc3Qgc2lkZSA9IHV0aWxzLnRhdVJhbmRJbnQoMiwgcmFuZG9tKTtcbiAgICAgICAgcmV0dXJuIHNpZGU7XG4gICAgfVxuICAgIGVsc2UgaWYgKG1hcmdpbiA+IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG59XG4vKipcbiAqIFNlYXJjaGVzIGEgZmxhdHRlbmVkIHJwLXRyZWUgZm9yIGEgcG9pbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hGbGF0VHJlZShwb2ludCwgdHJlZSwgcmFuZG9tKSB7XG4gICAgbGV0IG5vZGUgPSAwO1xuICAgIHdoaWxlICh0cmVlLmNoaWxkcmVuW25vZGVdWzBdID4gMCkge1xuICAgICAgICBjb25zdCBzaWRlID0gc2VsZWN0U2lkZSh0cmVlLmh5cGVycGxhbmVzW25vZGVdLCB0cmVlLm9mZnNldHNbbm9kZV0sIHBvaW50LCByYW5kb20pO1xuICAgICAgICBpZiAoc2lkZSA9PT0gMCkge1xuICAgICAgICAgICAgbm9kZSA9IHRyZWUuY2hpbGRyZW5bbm9kZV1bMF07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBub2RlID0gdHJlZS5jaGlsZHJlbltub2RlXVsxXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBpbmRleCA9IC0xICogdHJlZS5jaGlsZHJlbltub2RlXVswXTtcbiAgICByZXR1cm4gdHJlZS5pbmRpY2VzW2luZGV4XTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRISmxaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluUnlaV1V1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3T3pzN096czdPenM3T3pzN08wZEJhVUpITzBGQlJVZzdPenM3TzBkQlMwYzdRVUZGU0RzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEhRU3RDUnp0QlFVVklMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzVTBGQlV5eERRVUZETzBGQlpXcERMRTFCUVUwc1QwRkJUeXhSUVVGUk8wbEJRMjVDTEZsQlExTXNWMEZCY1VJc1JVRkRja0lzVDBGQmFVSXNSVUZEYWtJc1VVRkJiMElzUlVGRGNFSXNUMEZCYlVJN1VVRklia0lzWjBKQlFWY3NSMEZCV0N4WFFVRlhMRU5CUVZVN1VVRkRja0lzV1VGQlR5eEhRVUZRTEU5QlFVOHNRMEZCVlR0UlFVTnFRaXhoUVVGUkxFZEJRVklzVVVGQlVTeERRVUZaTzFGQlEzQkNMRmxCUVU4c1IwRkJVQ3hQUVVGUExFTkJRVms3U1VGRGVrSXNRMEZCUXp0RFFVTk1PMEZCUlVRN08wZEJSVWM3UVVGRFNDeE5RVUZOTEZWQlFWVXNWVUZCVlN4RFFVTjRRaXhKUVVGWkxFVkJRMW9zVlVGQmEwSXNSVUZEYkVJc1RVRkJZeXhGUVVOa0xFMUJRV2RDTzBsQlJXaENMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJSVEZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRXRCUVVzN1UwRkRhRUlzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0VFFVTmlMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM1JFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGT1VRc1QwRkJUeXhOUVVGTkxFTkJRVU03UVVGRGFFSXNRMEZCUXp0QlFVVkVPenM3UjBGSFJ6dEJRVU5JTEZOQlFWTXNVVUZCVVN4RFFVTm1MRWxCUVZrc1JVRkRXaXhSUVVGUkxFZEJRVWNzUlVGQlJTeEZRVU5pTEVOQlFWTXNSVUZEVkN4TlFVRm5RanRKUVVWb1FpeE5RVUZOTEU5QlFVOHNSMEZCUnl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTjZReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eEZRVUZGTEZGQlFWRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGJrVXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRaQ3hEUVVGRE8wRkJSVVFzVTBGQlV5eHBRa0ZCYVVJc1EwRkRlRUlzU1VGQldTeEZRVU5hTEU5QlFXbENMRVZCUTJwQ0xGRkJRVkVzUjBGQlJ5eEZRVUZGTEVWQlEySXNRMEZCVXl4RlFVTlVMRTFCUVdkQ08wbEJSV2hDTEVsQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1IwRkJSeXhSUVVGUkxFVkJRVVU3VVVGRE4wSXNUVUZCVFN4WlFVRlpMRWRCUVVjc09FSkJRVGhDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU16UlN4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWRCUVVjc1dVRkJXU3hEUVVGRE8xRkJSWFpGTEUxQlFVMHNVMEZCVXl4SFFVRkhMR2xDUVVGcFFpeERRVU5xUXl4SlFVRkpMRVZCUTBvc1YwRkJWeXhGUVVOWUxGRkJRVkVzUlVGRFVpeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVTk1MRTFCUVUwc1EwRkRVQ3hEUVVGRE8xRkJRMFlzVFVGQlRTeFZRVUZWTEVkQlFVY3NhVUpCUVdsQ0xFTkJRMnhETEVsQlFVa3NSVUZEU2l4WlFVRlpMRVZCUTFvc1VVRkJVU3hGUVVOU0xFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlEwd3NUVUZCVFN4RFFVTlFMRU5CUVVNN1VVRkZSaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEZRVUZGTEZOQlFWTXNSVUZCUlN4VlFVRlZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFZRVUZWTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNN1VVRkRNVVVzVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWp0VFFVRk5PMUZCUTB3c1RVRkJUU3hKUVVGSkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRM1pETEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1FVRkRTQ3hEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRk5CUVZNc09FSkJRVGhDTEVOQlEzSkRMRWxCUVZrc1JVRkRXaXhQUVVGcFFpeEZRVU5xUWl4TlFVRm5RanRKUVVWb1FpeE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkZaQ3cwUkVGQk5FUTdTVUZETlVRc1NVRkJTU3hUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzBsQlEzcEVMRWxCUVVrc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU14UkN4VlFVRlZMRWxCUVVrc1UwRkJVeXhMUVVGTExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGREwwTXNWVUZCVlN4SFFVRkhMRlZCUVZVc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEzcERMRTFCUVUwc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVTm9ReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1NVRkZiRU1zTUVWQlFUQkZPMGxCUXpGRkxIbERRVUY1UXp0SlFVTjZReXhKUVVGSkxHZENRVUZuUWl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVONlFpeEpRVUZKTEdkQ1FVRm5RaXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVWQ2UWl4blFrRkJaMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6VkRMR2RDUVVGblFqdFJRVU5rTEVOQlFVTXNaMEpCUVdkQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1NVRkhlRVFzYVVWQlFXbEZPMGxCUTJwRkxIVkZRVUYxUlR0SlFVTjJSU3d5UlVGQk1rVTdTVUZETTBVc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEyUXNTVUZCU1N4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMllzVFVGQlRTeEpRVUZKTEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZEZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEZGtNc1NVRkJTU3hOUVVGTkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNN1VVRkZOVUlzVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWb1JDeEpRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVN1dVRkRhRUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNSRExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSVHRuUWtGRGFrSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJRenRoUVVOYU8ybENRVUZOTzJkQ1FVTk1MRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU03WVVGRFlqdFRRVU5HTzJGQlFVMHNTVUZCU1N4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8xbEJRM0pDTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRFdpeExRVUZMTEVsQlFVa3NRMEZCUXl4RFFVRkRPMU5CUTFvN1lVRkJUVHRaUVVOTUxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRXaXhOUVVGTkxFbEJRVWtzUTBGQlF5eERRVUZETzFOQlEySTdTMEZEUmp0SlFVVkVMQ3REUVVFclF6dEpRVU12UXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTNaRExFMUJRVTBzV1VGQldTeEhRVUZITEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRmVrTXNkMFZCUVhkRk8wbEJRM2hGTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRWaXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlExZ3NTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRGNFTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTzFsQlEycENMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRhRU1zUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXp0VFFVTmFPMkZCUVUwN1dVRkRUQ3haUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnhETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRZanRMUVVOR08wbEJSVVFzVDBGQlR6dFJRVU5NTEZkQlFWYzdVVUZEV0N4WlFVRlpPMUZCUTFvc1ZVRkJWU3hGUVVGRkxHZENRVUZuUWp0UlFVTTFRaXhOUVVGTkxFVkJRVVVzWjBKQlFXZENPMHRCUTNwQ0xFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUXNVMEZCVXl4WFFVRlhMRU5CUVVNc1NVRkJPRUlzUlVGQlJTeFJRVUZuUWp0SlFVTnVSU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeFBRVUZQTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJSV2hETEcxRVFVRnRSRHRKUVVOdVJDeE5RVUZOTEZkQlFWY3NSMEZCUnl4TFFVRkxPMU5CUTNSQ0xFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdVMEZEWWl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVjBReXhOUVVGTkxFOUJRVThzUjBGQlJ5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRM0JETEUxQlFVMHNVVUZCVVN4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM3BFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzN1UwRkRiRUlzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXp0VFFVTmtMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJFUXNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEZkQlFWY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1VVRkJVU3hGUVVGRkxFOUJRVThzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRkRVVzVDBGQlR5eEpRVUZKTEZGQlFWRXNRMEZCUXl4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVGRkxGRkJRVkVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTXZSQ3hEUVVGRE8wRkJSVVFzVTBGQlV5eG5Ra0ZCWjBJc1EwRkRka0lzU1VGQk9FSXNSVUZET1VJc1YwRkJjVUlzUlVGRGNrSXNUMEZCYVVJc1JVRkRha0lzVVVGQmIwSXNSVUZEY0VJc1QwRkJiVUlzUlVGRGJrSXNUMEZCWlN4RlFVTm1MRTlCUVdVN1NVRkZaaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdVVUZEWml4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNN1VVRkZhRU1zYlVSQlFXMUVPMUZCUTI1RUxEQkVRVUV3UkR0UlFVTXhSQ3hQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVDBGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU51UlN4UFFVRlBMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMklzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1EwRkJRenRMUVVNM1FqdFRRVUZOTzFGQlEwd3NWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZYTEVOQlFVTTdVVUZEZUVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRlBMRU5CUVVNN1VVRkRhRU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYmtNc1RVRkJUU3hWUVVGVkxFZEJRVWNzVDBGQlR5eERRVUZETzFGQlJUTkNMRWxCUVVrc1IwRkJSeXhIUVVGSExHZENRVUZuUWl4RFFVTjRRaXhKUVVGSkxFTkJRVU1zVTBGQlZTeEZRVU5tTEZkQlFWY3NSVUZEV0N4UFFVRlBMRVZCUTFBc1VVRkJVU3hGUVVOU0xFOUJRVThzUlVGRFVDeFBRVUZQTEVkQlFVY3NRMEZCUXl4RlFVTllMRTlCUVU4c1EwRkRVaXhEUVVGRE8xRkJRMFlzVDBGQlR5eEhRVUZITEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNN1VVRkRkRUlzVDBGQlR5eEhRVUZITEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNN1VVRkZkRUlzVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGZEVNc1IwRkJSeXhIUVVGSExHZENRVUZuUWl4RFFVTndRaXhKUVVGSkxFTkJRVU1zVlVGQlZ5eEZRVU5vUWl4WFFVRlhMRVZCUTFnc1QwRkJUeXhGUVVOUUxGRkJRVkVzUlVGRFVpeFBRVUZQTEVWQlExQXNUMEZCVHl4SFFVRkhMRU5CUVVNc1JVRkRXQ3hQUVVGUExFTkJRMUlzUTBGQlF6dFJRVU5HTEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVGRExFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wdEJRM1pFTzBGQlEwZ3NRMEZCUXp0QlFVVkVMRk5CUVZNc1VVRkJVU3hEUVVGRExFbEJRVGhDTzBsQlF6bERMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJUdFJRVU5tTEU5QlFVOHNRMEZCUXl4RFFVRkRPMHRCUTFZN1UwRkJUVHRSUVVOTUxFOUJRVThzUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJWU3hEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlhMRU5CUVVNc1EwRkJRenRMUVVOdVJUdEJRVU5JTEVOQlFVTTdRVUZGUkN4VFFVRlRMRk5CUVZNc1EwRkJReXhKUVVFNFFqdEpRVU12UXl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVU3VVVGRFppeFBRVUZQTEVOQlFVTXNRMEZCUXp0TFFVTldPMU5CUVUwN1VVRkRUQ3hQUVVGUExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVlN4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZYTEVOQlFVTXNRMEZCUXp0TFFVTnFSVHRCUVVOSUxFTkJRVU03UVVGRlJEczdPenM3T3pzN1IwRlJSenRCUVVOSUxFMUJRVTBzVlVGQlZTeGhRVUZoTEVOQlFVTXNVVUZCYjBJN1NVRkRhRVFzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSVHRSUVVOMlFpeE5RVUZOTEUxQlFVMHNSMEZCWlN4RlFVRkZMRU5CUVVNN1VVRkRPVUlzUzBGQlN5eEpRVUZKTEVsQlFVa3NTVUZCU1N4UlFVRlJMRVZCUVVVN1dVRkRla0lzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUkxFTkJRVU1zUTBGQlF6dFRRVU12UWp0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wdEJRMlk3VTBGQlRUdFJRVU5NTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5tTzBGQlEwZ3NRMEZCUXp0QlFVVkVPenRIUVVWSE8wRkJRMGdzVTBGQlV5eFZRVUZWTEVOQlEycENMRlZCUVd0Q0xFVkJRMnhDTEUxQlFXTXNSVUZEWkN4TFFVRmhMRVZCUTJJc1RVRkJaMEk3U1VGRmFFSXNTVUZCU1N4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRE8wbEJSV3hDTEUxQlFVMHNTVUZCU1N4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRE8wbEJSeTlDTEVsQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSVHRSUVVOb1FpeE5RVUZOTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTjZReXhQUVVGUExFbEJRVWtzUTBGQlF6dExRVU5pTzFOQlFVMHNTVUZCU1N4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRM0pDTEU5QlFVOHNRMEZCUXl4RFFVRkRPMHRCUTFZN1UwRkJUVHRSUVVOTUxFOUJRVThzUTBGQlF5eERRVUZETzB0QlExWTdRVUZEU0N4RFFVRkRPMEZCUlVRN08wZEJSVWM3UVVGRFNDeE5RVUZOTEZWQlFWVXNZMEZCWXl4RFFVTTFRaXhMUVVGaExFVkJRMklzU1VGQll5eEZRVU5rTEUxQlFXZENPMGxCUldoQ0xFbEJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTmlMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVU3VVVGRGFrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1ZVRkJWU3hEUVVOeVFpeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVOMFFpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVOc1FpeExRVUZMTEVWQlEwd3NUVUZCVFN4RFFVTlFMRU5CUVVNN1VVRkRSaXhKUVVGSkxFbEJRVWtzUzBGQlN5eERRVUZETEVWQlFVVTdXVUZEWkN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlFqdGhRVUZOTzFsQlEwd3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRMMEk3UzBGRFJqdEpRVVZFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE1VTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlF6ZENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnNhV05sYm5ObFhHNGdLbHh1SUNvZ1EyOXdlWEpwWjJoMElESXdNVGtnUjI5dloyeGxJRXhNUXk0Z1FXeHNJRkpwWjJoMGN5QlNaWE5sY25abFpDNWNiaUFxWEc0Z0tpQk1hV05sYm5ObFpDQjFibVJsY2lCMGFHVWdRWEJoWTJobElFeHBZMlZ1YzJVc0lGWmxjbk5wYjI0Z01pNHdJQ2gwYUdVZ1hDSk1hV05sYm5ObFhDSXBPMXh1SUNvZ2VXOTFJRzFoZVNCdWIzUWdkWE5sSUhSb2FYTWdabWxzWlNCbGVHTmxjSFFnYVc0Z1kyOXRjR3hwWVc1alpTQjNhWFJvSUhSb1pTQk1hV05sYm5ObExseHVJQ29nV1c5MUlHMWhlU0J2WW5SaGFXNGdZU0JqYjNCNUlHOW1JSFJvWlNCTWFXTmxibk5sSUdGMFhHNGdLbHh1SUNvZ0lDQWdJR2gwZEhBNkx5OTNkM2N1WVhCaFkyaGxMbTl5Wnk5c2FXTmxibk5sY3k5TVNVTkZUbE5GTFRJdU1GeHVJQ3BjYmlBcUlGVnViR1Z6Y3lCeVpYRjFhWEpsWkNCaWVTQmhjSEJzYVdOaFlteGxJR3hoZHlCdmNpQmhaM0psWldRZ2RHOGdhVzRnZDNKcGRHbHVaeXdnYzI5bWRIZGhjbVZjYmlBcUlHUnBjM1J5YVdKMWRHVmtJSFZ1WkdWeUlIUm9aU0JNYVdObGJuTmxJR2x6SUdScGMzUnlhV0oxZEdWa0lHOXVJR0Z1SUZ3aVFWTWdTVk5jSWlCQ1FWTkpVeXhjYmlBcUlGZEpWRWhQVlZRZ1YwRlNVa0ZPVkVsRlV5QlBVaUJEVDA1RVNWUkpUMDVUSUU5R0lFRk9XU0JMU1U1RUxDQmxhWFJvWlhJZ1pYaHdjbVZ6Y3lCdmNpQnBiWEJzYVdWa0xseHVJQ29nVTJWbElIUm9aU0JNYVdObGJuTmxJR1p2Y2lCMGFHVWdjM0JsWTJsbWFXTWdiR0Z1WjNWaFoyVWdaMjkyWlhKdWFXNW5JSEJsY20xcGMzTnBiMjV6SUdGdVpGeHVJQ29nYkdsdGFYUmhkR2x2Ym5NZ2RXNWtaWElnZEdobElFeHBZMlZ1YzJVdVhHNGdLaUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNiaUFxTDF4dVhHNHZLaXBjYmlBcUlGUm9hWE1nYVhNZ1lTQktZWFpoVTJOeWFYQjBJSEpsYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnVlUxQlVDQW9iM0pwWjJsdVlXd2diR2xqWlc1elpTQmlaV3h2ZHlrc0lHWnliMjFjYmlBcUlIUm9aU0J3ZVhSb2IyNGdhVzF3YkdWdFpXNTBZWFJwYjI0Z1ptOTFibVFnWVhRZ2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwyeHRZMmx1Ym1WekwzVnRZWEF1WEc0Z0tseHVJQ29nUUdGMWRHaHZjaUJoYm1SNVkyOWxibVZ1UUdkdmIyZHNaUzVqYjIwZ0tFRnVaSGtnUTI5bGJtVnVLVnh1SUNvdlhHNWNiaThxS2x4dUlDb2dRR3hwWTJWdWMyVmNiaUFxSUVKVFJDQXpMVU5zWVhWelpTQk1hV05sYm5ObFhHNGdLbHh1SUNvZ1EyOXdlWEpwWjJoMElDaGpLU0F5TURFM0xDQk1aV3hoYm1RZ1RXTkpibTVsYzF4dUlDb2dRV3hzSUhKcFoyaDBjeUJ5WlhObGNuWmxaQzVjYmlBcVhHNGdLaUJTWldScGMzUnlhV0oxZEdsdmJpQmhibVFnZFhObElHbHVJSE52ZFhKalpTQmhibVFnWW1sdVlYSjVJR1p2Y20xekxDQjNhWFJvSUc5eUlIZHBkR2h2ZFhSY2JpQXFJRzF2WkdsbWFXTmhkR2x2Yml3Z1lYSmxJSEJsY20xcGRIUmxaQ0J3Y205MmFXUmxaQ0IwYUdGMElIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3lCaGNtVWdiV1YwT2x4dUlDcGNiaUFxSUNvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnS2lBZ0lHeHBjM1FnYjJZZ1kyOXVaR2wwYVc5dWN5QmhibVFnZEdobElHWnZiR3h2ZDJsdVp5QmthWE5qYkdGcGJXVnlMbHh1SUNwY2JpQXFJQ29nVW1Wa2FYTjBjbWxpZFhScGIyNXpJR2x1SUdKcGJtRnllU0JtYjNKdElHMTFjM1FnY21Wd2NtOWtkV05sSUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTEZ4dUlDb2dJQ0IwYUdseklHeHBjM1FnYjJZZ1kyOXVaR2wwYVc5dWN5QmhibVFnZEdobElHWnZiR3h2ZDJsdVp5QmthWE5qYkdGcGJXVnlJR2x1SUhSb1pTQmtiMk4xYldWdWRHRjBhVzl1WEc0Z0tpQWdJR0Z1WkM5dmNpQnZkR2hsY2lCdFlYUmxjbWxoYkhNZ2NISnZkbWxrWldRZ2QybDBhQ0IwYUdVZ1pHbHpkSEpwWW5WMGFXOXVMbHh1SUNwY2JpQXFJQ29nVG1WcGRHaGxjaUIwYUdVZ2JtRnRaU0J2WmlCMGFHVWdZMjl3ZVhKcFoyaDBJR2h2YkdSbGNpQnViM0lnZEdobElHNWhiV1Z6SUc5bUlHbDBjMXh1SUNvZ0lDQmpiMjUwY21saWRYUnZjbk1nYldGNUlHSmxJSFZ6WldRZ2RHOGdaVzVrYjNKelpTQnZjaUJ3Y205dGIzUmxJSEJ5YjJSMVkzUnpJR1JsY21sMlpXUWdabkp2YlZ4dUlDb2dJQ0IwYUdseklITnZablIzWVhKbElIZHBkR2h2ZFhRZ2MzQmxZMmxtYVdNZ2NISnBiM0lnZDNKcGRIUmxiaUJ3WlhKdGFYTnphVzl1TGx4dUlDcGNiaUFxSUZSSVNWTWdVMDlHVkZkQlVrVWdTVk1nVUZKUFZrbEVSVVFnUWxrZ1ZFaEZJRU5QVUZsU1NVZElWQ0JJVDB4RVJWSlRJRUZPUkNCRFQwNVVVa2xDVlZSUFVsTWdYQ0pCVXlCSlUxd2lYRzRnS2lCQlRrUWdRVTVaSUVWWVVGSkZVMU1nVDFJZ1NVMVFURWxGUkNCWFFWSlNRVTVVU1VWVExDQkpUa05NVlVSSlRrY3NJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeXdnVkVoRlhHNGdLaUJKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNiaUFxSUVSSlUwTk1RVWxOUlVRdUlFbE9JRTVQSUVWV1JVNVVJRk5JUVV4TUlGUklSU0JEVDFCWlVrbEhTRlFnU0U5TVJFVlNJRTlTSUVOUFRsUlNTVUpWVkU5U1V5QkNSU0JNU1VGQ1RFVmNiaUFxSUVaUFVpQkJUbGtnUkVsU1JVTlVMQ0JKVGtSSlVrVkRWQ3dnU1U1RFNVUkZUbFJCVEN3Z1UxQkZRMGxCVEN3Z1JWaEZUVkJNUVZKWkxDQlBVaUJEVDA1VFJWRlZSVTVVU1VGTVhHNGdLaUJFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dUlDb2dVMFZTVmtsRFJWTTdJRXhQVTFNZ1QwWWdWVk5GTENCRVFWUkJMQ0JQVWlCUVVrOUdTVlJUT3lCUFVpQkNWVk5KVGtWVFV5QkpUbFJGVWxKVlVGUkpUMDRwSUVoUFYwVldSVkpjYmlBcUlFTkJWVk5GUkNCQlRrUWdUMDRnUVU1WklGUklSVTlTV1NCUFJpQk1TVUZDU1V4SlZGa3NJRmRJUlZSSVJWSWdTVTRnUTA5T1ZGSkJRMVFzSUZOVVVrbERWQ0JNU1VGQ1NVeEpWRmtzWEc0Z0tpQlBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dUlDb2dUMFlnVkVoSlV5QlRUMFpVVjBGU1JTd2dSVlpGVGlCSlJpQkJSRlpKVTBWRUlFOUdJRlJJUlNCUVQxTlRTVUpKVEVsVVdTQlBSaUJUVlVOSUlFUkJUVUZIUlM1Y2JpQXFMMXh1WEc1cGJYQnZjblFnS2lCaGN5QjFkR2xzY3lCbWNtOXRJQ2N1TDNWMGFXeHpKenRjYm1sdGNHOXlkQ0I3SUZKaGJtUnZiVVp1TENCV1pXTjBiM0lzSUZabFkzUnZjbk1nZlNCbWNtOXRJQ2N1TDNWdFlYQW5PMXh1WEc0dktpcGNiaUFxSUZSeVpXVWdablZ1WTNScGIyNWhiR2wwZVNCbWIzSWdZWEJ3Y205NGFXMWhkR2x1WnlCdVpXRnlaWE4wSUc1bGFXZG9ZbTl5YzF4dUlDb3ZYRzVwYm5SbGNtWmhZMlVnVW1GdVpHOXRVSEp2YW1WamRHbHZibFJ5WldWT2IyUmxJSHRjYmlBZ2FYTk1aV0ZtT2lCaWIyOXNaV0Z1TzF4dUlDQnBibVJwWTJWelB6b2diblZ0WW1WeVcxMDdYRzRnSUd4bFpuUkRhR2xzWkQ4NklGSmhibVJ2YlZCeWIycGxZM1JwYjI1VWNtVmxUbTlrWlR0Y2JpQWdjbWxuYUhSRGFHbHNaRDg2SUZKaGJtUnZiVkJ5YjJwbFkzUnBiMjVVY21WbFRtOWtaVHRjYmlBZ2FIbHdaWEp3YkdGdVpUODZJRzUxYldKbGNqdGNiaUFnYjJabWMyVjBQem9nYm5WdFltVnlPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nUm14aGRGUnlaV1VnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhjYmlBZ0lDQndkV0pzYVdNZ2FIbHdaWEp3YkdGdVpYTTZJRzUxYldKbGNsdGRMRnh1SUNBZ0lIQjFZbXhwWXlCdlptWnpaWFJ6T2lCdWRXMWlaWEpiWFN4Y2JpQWdJQ0J3ZFdKc2FXTWdZMmhwYkdSeVpXNDZJRzUxYldKbGNsdGRXMTBzWEc0Z0lDQWdjSFZpYkdsaklHbHVaR2xqWlhNNklHNTFiV0psY2x0ZFcxMWNiaUFnS1NCN2ZWeHVmVnh1WEc0dktpcGNiaUFxSUVKMWFXeGtJR0VnY21GdVpHOXRJSEJ5YjJwbFkzUnBiMjRnWm05eVpYTjBJSGRwZEdnZ1lHQnVWSEpsWlhOZ1lDNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUcxaGEyVkdiM0psYzNRb1hHNGdJR1JoZEdFNklGWmxZM1J2Y2l4Y2JpQWdiazVsYVdkb1ltOXljem9nYm5WdFltVnlMRnh1SUNCdVZISmxaWE02SUc1MWJXSmxjaXhjYmlBZ2NtRnVaRzl0T2lCU1lXNWtiMjFHYmx4dUtTQjdYRzRnSUdOdmJuTjBJR3hsWVdaVGFYcGxJRDBnVFdGMGFDNXRZWGdvTVRBc0lHNU9aV2xuYUdKdmNuTXBPMXh1WEc0Z0lHTnZibk4wSUhSeVpXVnpJRDBnZFhScGJITmNiaUFnSUNBdWNtRnVaMlVvYmxSeVpXVnpLVnh1SUNBZ0lDNXRZWEFvS0Y4c0lHa3BJRDArSUcxaGEyVlVjbVZsS0dSaGRHRXNJR3hsWVdaVGFYcGxMQ0JwTENCeVlXNWtiMjBwS1R0Y2JpQWdZMjl1YzNRZ1ptOXlaWE4wSUQwZ2RISmxaWE11YldGd0tIUnlaV1VnUFQ0Z1pteGhkSFJsYmxSeVpXVW9kSEpsWlN3Z2JHVmhabE5wZW1VcEtUdGNibHh1SUNCeVpYUjFjbTRnWm05eVpYTjBPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFTnZibk4wY25WamRDQmhJSEpoYm1SdmJTQndjbTlxWldOMGFXOXVJSFJ5WldVZ1ltRnpaV1FnYjI0Z1lHQmtZWFJoWUdBZ2QybDBhQ0JzWldGMlpYTmNiaUFxSUc5bUlITnBlbVVnWVhRZ2JXOXpkQ0JnWUd4bFlXWlRhWHBsWUdCY2JpQXFMMXh1Wm5WdVkzUnBiMjRnYldGclpWUnlaV1VvWEc0Z0lHUmhkR0U2SUZabFkzUnZjaXhjYmlBZ2JHVmhabE5wZW1VZ1BTQXpNQ3hjYmlBZ2Jqb2diblZ0WW1WeUxGeHVJQ0J5WVc1a2IyMDZJRkpoYm1SdmJVWnVYRzRwT2lCU1lXNWtiMjFRY205cVpXTjBhVzl1VkhKbFpVNXZaR1VnZTF4dUlDQmpiMjV6ZENCcGJtUnBZMlZ6SUQwZ2RYUnBiSE11Y21GdVoyVW9aR0YwWVM1c1pXNW5kR2dwTzF4dUlDQmpiMjV6ZENCMGNtVmxJRDBnYldGclpVVjFZMnhwWkdWaGJsUnlaV1VvWkdGMFlTd2dhVzVrYVdObGN5d2diR1ZoWmxOcGVtVXNJRzRzSUhKaGJtUnZiU2s3WEc0Z0lISmxkSFZ5YmlCMGNtVmxPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnRZV3RsUlhWamJHbGtaV0Z1VkhKbFpTaGNiaUFnWkdGMFlUb2dWbVZqZEc5eUxGeHVJQ0JwYm1ScFkyVnpPaUJ1ZFcxaVpYSmJYU3hjYmlBZ2JHVmhabE5wZW1VZ1BTQXpNQ3hjYmlBZ2NUb2diblZ0WW1WeUxGeHVJQ0J5WVc1a2IyMDZJRkpoYm1SdmJVWnVYRzRwT2lCU1lXNWtiMjFRY205cVpXTjBhVzl1VkhKbFpVNXZaR1VnZTF4dUlDQnBaaUFvYVc1a2FXTmxjeTVzWlc1bmRHZ2dQaUJzWldGbVUybDZaU2tnZTF4dUlDQWdJR052Ym5OMElITndiR2wwVW1WemRXeDBjeUE5SUdWMVkyeHBaR1ZoYmxKaGJtUnZiVkJ5YjJwbFkzUnBiMjVUY0d4cGRDaGtZWFJoTENCcGJtUnBZMlZ6TENCeVlXNWtiMjBwTzF4dUlDQWdJR052Ym5OMElIc2dhVzVrYVdObGMweGxablFzSUdsdVpHbGpaWE5TYVdkb2RDd2dhSGx3WlhKd2JHRnVaU3dnYjJabWMyVjBJSDBnUFNCemNHeHBkRkpsYzNWc2RITTdYRzVjYmlBZ0lDQmpiMjV6ZENCc1pXWjBRMmhwYkdRZ1BTQnRZV3RsUlhWamJHbGtaV0Z1VkhKbFpTaGNiaUFnSUNBZ0lHUmhkR0VzWEc0Z0lDQWdJQ0JwYm1ScFkyVnpUR1ZtZEN4Y2JpQWdJQ0FnSUd4bFlXWlRhWHBsTEZ4dUlDQWdJQ0FnY1NBcklERXNYRzRnSUNBZ0lDQnlZVzVrYjIxY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElISnBaMmgwUTJocGJHUWdQU0J0WVd0bFJYVmpiR2xrWldGdVZISmxaU2hjYmlBZ0lDQWdJR1JoZEdFc1hHNGdJQ0FnSUNCcGJtUnBZMlZ6VW1sbmFIUXNYRzRnSUNBZ0lDQnNaV0ZtVTJsNlpTeGNiaUFnSUNBZ0lIRWdLeUF4TEZ4dUlDQWdJQ0FnY21GdVpHOXRYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHTnZibk4wSUc1dlpHVWdQU0I3SUd4bFpuUkRhR2xzWkN3Z2NtbG5hSFJEYUdsc1pDd2dhWE5NWldGbU9pQm1ZV3h6WlN3Z2FIbHdaWEp3YkdGdVpTd2diMlptYzJWMElIMDdYRzRnSUNBZ2NtVjBkWEp1SUc1dlpHVTdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdZMjl1YzNRZ2JtOWtaU0E5SUhzZ2FXNWthV05sY3l3Z2FYTk1aV0ZtT2lCMGNuVmxJSDA3WEc0Z0lDQWdjbVYwZFhKdUlHNXZaR1U3WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCSGFYWmxiaUJoSUhObGRDQnZaaUJnWUdsdVpHbGpaWE5nWUNCbWIzSWdaR0YwWVNCd2IybHVkSE1nWm5KdmJTQmdZR1JoZEdGZ1lDd2dZM0psWVhSbFhHNGdLaUJoSUhKaGJtUnZiU0JvZVhCbGNuQnNZVzVsSUhSdklITndiR2wwSUhSb1pTQmtZWFJoTENCeVpYUjFjbTVwYm1jZ2RIZHZJR0Z5Y21GNWN5QnBibVJwWTJWelhHNGdLaUIwYUdGMElHWmhiR3dnYjI0Z1pXbDBhR1Z5SUhOcFpHVWdiMllnZEdobElHaDVjR1Z5Y0d4aGJtVXVJRlJvYVhNZ2FYTWdkR2hsSUdKaGMybHpJR1p2Y2lCaFhHNGdLaUJ5WVc1a2IyMGdjSEp2YW1WamRHbHZiaUIwY21WbExDQjNhR2xqYUNCemFXMXdiSGtnZFhObGN5QjBhR2x6SUhOd2JHbDBkR2x1WnlCeVpXTjFjbk5wZG1Wc2VTNWNiaUFxSUZSb2FYTWdjR0Z5ZEdsamRXeGhjaUJ6Y0d4cGRDQjFjMlZ6SUdWMVkyeHBaR1ZoYmlCa2FYTjBZVzVqWlNCMGJ5QmtaWFJsY20xcGJtVWdkR2hsSUdoNWNHVnljR3hoYm1WY2JpQXFJR0Z1WkNCM2FHbGphQ0J6YVdSbElHVmhZMmdnWkdGMFlTQnpZVzF3YkdVZ1ptRnNiSE1nYjI0dVhHNGdLaTljYm1aMWJtTjBhVzl1SUdWMVkyeHBaR1ZoYmxKaGJtUnZiVkJ5YjJwbFkzUnBiMjVUY0d4cGRDaGNiaUFnWkdGMFlUb2dWbVZqZEc5eUxGeHVJQ0JwYm1ScFkyVnpPaUJ1ZFcxaVpYSmJYU3hjYmlBZ2NtRnVaRzl0T2lCU1lXNWtiMjFHYmx4dUtTQjdYRzRnSUdOdmJuTjBJR1JwYlNBOUlERTdYRzVjYmlBZ0x5OGdVMlZzWldOMElIUjNieUJ5WVc1a2IyMGdjRzlwYm5SekxDQnpaWFFnZEdobElHaDVjR1Z5Y0d4aGJtVWdZbVYwZDJWbGJpQjBhR1Z0WEc0Z0lHeGxkQ0JzWldaMFNXNWtaWGdnUFNCMWRHbHNjeTUwWVhWU1lXNWtTVzUwS0dsdVpHbGpaWE11YkdWdVozUm9MQ0J5WVc1a2IyMHBPMXh1SUNCc1pYUWdjbWxuYUhSSmJtUmxlQ0E5SUhWMGFXeHpMblJoZFZKaGJtUkpiblFvYVc1a2FXTmxjeTVzWlc1bmRHZ3NJSEpoYm1SdmJTazdYRzRnSUhKcFoyaDBTVzVrWlhnZ0t6MGdiR1ZtZEVsdVpHVjRJRDA5UFNCeWFXZG9kRWx1WkdWNElEOGdNU0E2SURBN1hHNGdJSEpwWjJoMFNXNWtaWGdnUFNCeWFXZG9kRWx1WkdWNElDVWdhVzVrYVdObGN5NXNaVzVuZEdnN1hHNGdJR052Ym5OMElHeGxablFnUFNCcGJtUnBZMlZ6VzJ4bFpuUkpibVJsZUYwN1hHNGdJR052Ym5OMElISnBaMmgwSUQwZ2FXNWthV05sYzF0eWFXZG9kRWx1WkdWNFhUdGNibHh1SUNBdkx5QkRiMjF3ZFhSbElIUm9aU0J1YjNKdFlXd2dkbVZqZEc5eUlIUnZJSFJvWlNCb2VYQmxjbkJzWVc1bElDaDBhR1VnZG1WamRHOXlJR0psZEhkbFpXNGdkR2hsSUhSM2IxeHVJQ0F2THlCd2IybHVkSE1wSUdGdVpDQjBhR1VnYjJabWMyVjBJR1p5YjIwZ2RHaGxJRzl5YVdkcGJseHVJQ0JzWlhRZ2FIbHdaWEp3YkdGdVpVOW1abk5sZENBOUlEQTdYRzRnSUd4bGRDQm9lWEJsY25Cc1lXNWxWbVZqZEc5eUlEMGdNRHRjYmx4dUlDQmNiaUFnYUhsd1pYSndiR0Z1WlZabFkzUnZjaUE5SUdSaGRHRmJiR1ZtZEYwZ0xTQmtZWFJoVzNKcFoyaDBYVHRjYmlBZ2FIbHdaWEp3YkdGdVpVOW1abk5sZENBdFBWeHVJQ0FnSUNob2VYQmxjbkJzWVc1bFZtVmpkRzl5SUNvZ0tHUmhkR0ZiYkdWbWRGMGdLeUJrWVhSaFczSnBaMmgwWFNrcElDOGdNaTR3TzF4dUlDQmNibHh1SUNBdkx5QkdiM0lnWldGamFDQndiMmx1ZENCamIyMXdkWFJsSUhSb1pTQnRZWEpuYVc0Z0tIQnliMnBsWTNRZ2FXNTBieUJ1YjNKdFlXd2dkbVZqZEc5eUtWeHVJQ0F2THlCSlppQjNaU0JoY21VZ2IyNGdiRzkzWlhJZ2MybGtaU0J2WmlCMGFHVWdhSGx3WlhKd2JHRnVaU0J3ZFhRZ2FXNGdiMjVsSUhCcGJHVXNJRzkwYUdWeWQybHpaVnh1SUNBdkx5QndkWFFnYVhRZ2FXNGdkR2hsSUc5MGFHVnlJSEJwYkdVZ0tHbG1JSGRsSUdocGRDQm9lWEJsY25Cc1lXNWxJRzl1SUhSb1pTQnViM05sTENCbWJHbHdJR0VnWTI5cGJpbGNiaUFnYkdWMElHNU1aV1owSUQwZ01EdGNiaUFnYkdWMElHNVNhV2RvZENBOUlEQTdYRzRnSUdOdmJuTjBJSE5wWkdVZ1BTQjFkR2xzY3k1NlpYSnZjeWhwYm1ScFkyVnpMbXhsYm1kMGFDazdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2FXNWthV05sY3k1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lHeGxkQ0J0WVhKbmFXNGdQU0JvZVhCbGNuQnNZVzVsVDJabWMyVjBPMXh1SUNBZ0lGeHVJQ0FnSUNBZ2JXRnlaMmx1SUNzOUlHaDVjR1Z5Y0d4aGJtVldaV04wYjNJZ0tpQmtZWFJoVzJsdVpHbGpaWE5iYVYxZE8xeHVJQ0FnSUZ4dUlDQWdJR2xtSUNodFlYSm5hVzRnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJSE5wWkdWYmFWMGdQU0IxZEdsc2N5NTBZWFZTWVc1a1NXNTBLRElzSUhKaGJtUnZiU2s3WEc0Z0lDQWdJQ0JwWmlBb2MybGtaVnRwWFNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNCdVRHVm1kQ0FyUFNBeE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2JsSnBaMmgwSUNzOUlERTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaHRZWEpuYVc0Z1BpQXdLU0I3WEc0Z0lDQWdJQ0J6YVdSbFcybGRJRDBnTUR0Y2JpQWdJQ0FnSUc1TVpXWjBJQ3M5SURFN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSE5wWkdWYmFWMGdQU0F4TzF4dUlDQWdJQ0FnYmxKcFoyaDBJQ3M5SURFN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5OGdUbTkzSUhSb1lYUWdkMlVnYUdGMlpTQjBhR1VnWTI5MWJuUnpMQ0JoYkd4dlkyRjBaU0JoY25KaGVYTmNiaUFnWTI5dWMzUWdhVzVrYVdObGMweGxablFnUFNCMWRHbHNjeTU2WlhKdmN5aHVUR1ZtZENrN1hHNGdJR052Ym5OMElHbHVaR2xqWlhOU2FXZG9kQ0E5SUhWMGFXeHpMbnBsY205ektHNVNhV2RvZENrN1hHNWNiaUFnTHk4Z1VHOXdkV3hoZEdVZ2RHaGxJR0Z5Y21GNWN5QjNhWFJvSUdsdVpHbGpaWE1nWVdOamIzSmthVzVuSUhSdklIZG9hV05vSUhOcFpHVWdkR2hsZVNCbVpXeHNJRzl1WEc0Z0lHNU1aV1owSUQwZ01EdGNiaUFnYmxKcFoyaDBJRDBnTUR0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J6YVdSbExteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdhV1lnS0hOcFpHVmJhVjBnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJR2x1WkdsalpYTk1aV1owVzI1TVpXWjBYU0E5SUdsdVpHbGpaWE5iYVYwN1hHNGdJQ0FnSUNCdVRHVm1kQ0FyUFNBeE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JwYm1ScFkyVnpVbWxuYUhSYmJsSnBaMmgwWFNBOUlHbHVaR2xqWlhOYmFWMDdYRzRnSUNBZ0lDQnVVbWxuYUhRZ0t6MGdNVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lHbHVaR2xqWlhOTVpXWjBMRnh1SUNBZ0lHbHVaR2xqWlhOU2FXZG9kQ3hjYmlBZ0lDQm9lWEJsY25Cc1lXNWxPaUJvZVhCbGNuQnNZVzVsVm1WamRHOXlMRnh1SUNBZ0lHOW1abk5sZERvZ2FIbHdaWEp3YkdGdVpVOW1abk5sZEN4Y2JpQWdmVHRjYm4xY2JseHVablZ1WTNScGIyNGdabXhoZEhSbGJsUnlaV1VvZEhKbFpUb2dVbUZ1Wkc5dFVISnZhbVZqZEdsdmJsUnlaV1ZPYjJSbExDQnNaV0ZtVTJsNlpUb2diblZ0WW1WeUtTQjdYRzRnSUdOdmJuTjBJRzVPYjJSbGN5QTlJRzUxYlU1dlpHVnpLSFJ5WldVcE8xeHVJQ0JqYjI1emRDQnVUR1ZoZG1WeklEMGdiblZ0VEdWaGRtVnpLSFJ5WldVcE8xeHVYRzRnSUM4dklGUlBSRTg2SUZabGNtbG1lU0IwYUdGMElITndZWEp6WlNCamIyUmxJR2x6SUc1dmRDQnlaV3hsZG1GdWRDNHVMbHh1SUNCamIyNXpkQ0JvZVhCbGNuQnNZVzVsY3lBOUlIVjBhV3h6WEc0Z0lDQWdMbkpoYm1kbEtHNU9iMlJsY3lsY2JpQWdJQ0F1YldGd0tDZ3BJRDArSUhSeVpXVXVhSGx3WlhKd2JHRnVaU0EvSURFZ09pQXdLVHRjYmx4dUlDQmpiMjV6ZENCdlptWnpaWFJ6SUQwZ2RYUnBiSE11ZW1WeWIzTW9iazV2WkdWektUdGNiaUFnWTI5dWMzUWdZMmhwYkdSeVpXNGdQU0IxZEdsc2N5NXlZVzVuWlNodVRtOWtaWE1wTG0xaGNDZ29LU0E5UGlCYkxURXNJQzB4WFNrN1hHNGdJR052Ym5OMElHbHVaR2xqWlhNZ1BTQjFkR2xzYzF4dUlDQWdJQzV5WVc1blpTaHVUR1ZoZG1WektWeHVJQ0FnSUM1dFlYQW9LQ2tnUFQ0Z2RYUnBiSE11Y21GdVoyVW9iR1ZoWmxOcGVtVXBMbTFoY0Nnb0tTQTlQaUF0TVNrcE8xeHVJQ0J5WldOMWNuTnBkbVZHYkdGMGRHVnVLSFJ5WldVc0lHaDVjR1Z5Y0d4aGJtVnpMQ0J2Wm1aelpYUnpMQ0JqYUdsc1pISmxiaXdnYVc1a2FXTmxjeXdnTUN3Z01DazdYRzRnSUhKbGRIVnliaUJ1WlhjZ1JteGhkRlJ5WldVb2FIbHdaWEp3YkdGdVpYTXNJRzltWm5ObGRITXNJR05vYVd4a2NtVnVMQ0JwYm1ScFkyVnpLVHRjYm4xY2JseHVablZ1WTNScGIyNGdjbVZqZFhKemFYWmxSbXhoZEhSbGJpaGNiaUFnZEhKbFpUb2dVbUZ1Wkc5dFVISnZhbVZqZEdsdmJsUnlaV1ZPYjJSbExGeHVJQ0JvZVhCbGNuQnNZVzVsY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJRzltWm5ObGRITTZJRzUxYldKbGNsdGRMRnh1SUNCamFHbHNaSEpsYmpvZ2JuVnRZbVZ5VzExYlhTeGNiaUFnYVc1a2FXTmxjem9nYm5WdFltVnlXMTFiWFN4Y2JpQWdibTlrWlU1MWJUb2diblZ0WW1WeUxGeHVJQ0JzWldGbVRuVnRPaUJ1ZFcxaVpYSmNiaWs2SUhzZ2JtOWtaVTUxYlRvZ2JuVnRZbVZ5T3lCc1pXRm1UblZ0T2lCdWRXMWlaWElnZlNCN1hHNGdJR2xtSUNoMGNtVmxMbWx6VEdWaFppa2dlMXh1SUNBZ0lHTm9hV3hrY21WdVcyNXZaR1ZPZFcxZFd6QmRJRDBnTFd4bFlXWk9kVzA3WEc1Y2JpQWdJQ0F2THlCVVQwUlBPaUJVY21sd2JHVWdZMmhsWTJzZ2RHaHBjeUJ2Y0dWeVlYUnBiMjRnWTI5eWNtVnpjRzl1WkhNZ2RHOWNiaUFnSUNBdkx5QnBibVJwWTJWelcyeGxZV1pPZFcwZ09pQjBjbVZsTG1sdVpHbGpaWE11YzJoaGNHVmJNRjFkSUQwZ2RISmxaUzVwYm1ScFkyVnpYRzRnSUNBZ2FXNWthV05sYzF0c1pXRm1UblZ0WFM1emNHeHBZMlVvTUN3Z2RISmxaUzVwYm1ScFkyVnpJUzVzWlc1bmRHZ3NJQzR1TG5SeVpXVXVhVzVrYVdObGN5RXBPMXh1SUNBZ0lHeGxZV1pPZFcwZ0t6MGdNVHRjYmlBZ0lDQnlaWFIxY200Z2V5QnViMlJsVG5WdExDQnNaV0ZtVG5WdElIMDdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdhSGx3WlhKd2JHRnVaWE5iYm05a1pVNTFiVjBnUFNCMGNtVmxMbWg1Y0dWeWNHeGhibVVoTzF4dUlDQWdJRzltWm5ObGRITmJibTlrWlU1MWJWMGdQU0IwY21WbExtOW1abk5sZENFN1hHNGdJQ0FnWTJocGJHUnlaVzViYm05a1pVNTFiVjFiTUYwZ1BTQnViMlJsVG5WdElDc2dNVHRjYmlBZ0lDQmpiMjV6ZENCdmJHUk9iMlJsVG5WdElEMGdibTlrWlU1MWJUdGNibHh1SUNBZ0lHeGxkQ0J5WlhNZ1BTQnlaV04xY25OcGRtVkdiR0YwZEdWdUtGeHVJQ0FnSUNBZ2RISmxaUzVzWldaMFEyaHBiR1FoTEZ4dUlDQWdJQ0FnYUhsd1pYSndiR0Z1WlhNc1hHNGdJQ0FnSUNCdlptWnpaWFJ6TEZ4dUlDQWdJQ0FnWTJocGJHUnlaVzRzWEc0Z0lDQWdJQ0JwYm1ScFkyVnpMRnh1SUNBZ0lDQWdibTlrWlU1MWJTQXJJREVzWEc0Z0lDQWdJQ0JzWldGbVRuVnRYRzRnSUNBZ0tUdGNiaUFnSUNCdWIyUmxUblZ0SUQwZ2NtVnpMbTV2WkdWT2RXMDdYRzRnSUNBZ2JHVmhaazUxYlNBOUlISmxjeTVzWldGbVRuVnRPMXh1WEc0Z0lDQWdZMmhwYkdSeVpXNWJiMnhrVG05a1pVNTFiVjFiTVYwZ1BTQnViMlJsVG5WdElDc2dNVHRjYmx4dUlDQWdJSEpsY3lBOUlISmxZM1Z5YzJsMlpVWnNZWFIwWlc0b1hHNGdJQ0FnSUNCMGNtVmxMbkpwWjJoMFEyaHBiR1FoTEZ4dUlDQWdJQ0FnYUhsd1pYSndiR0Z1WlhNc1hHNGdJQ0FnSUNCdlptWnpaWFJ6TEZ4dUlDQWdJQ0FnWTJocGJHUnlaVzRzWEc0Z0lDQWdJQ0JwYm1ScFkyVnpMRnh1SUNBZ0lDQWdibTlrWlU1MWJTQXJJREVzWEc0Z0lDQWdJQ0JzWldGbVRuVnRYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZXlCdWIyUmxUblZ0T2lCeVpYTXVibTlrWlU1MWJTd2diR1ZoWms1MWJUb2djbVZ6TG14bFlXWk9kVzBnZlR0Y2JpQWdmVnh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnVkVzFPYjJSbGN5aDBjbVZsT2lCU1lXNWtiMjFRY205cVpXTjBhVzl1VkhKbFpVNXZaR1VwT2lCdWRXMWlaWElnZTF4dUlDQnBaaUFvZEhKbFpTNXBjMHhsWVdZcElIdGNiaUFnSUNCeVpYUjFjbTRnTVR0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCeVpYUjFjbTRnTVNBcklHNTFiVTV2WkdWektIUnlaV1V1YkdWbWRFTm9hV3hrSVNrZ0t5QnVkVzFPYjJSbGN5aDBjbVZsTG5KcFoyaDBRMmhwYkdRaEtUdGNiaUFnZlZ4dWZWeHVYRzVtZFc1amRHbHZiaUJ1ZFcxTVpXRjJaWE1vZEhKbFpUb2dVbUZ1Wkc5dFVISnZhbVZqZEdsdmJsUnlaV1ZPYjJSbEtUb2diblZ0WW1WeUlIdGNiaUFnYVdZZ0tIUnlaV1V1YVhOTVpXRm1LU0I3WEc0Z0lDQWdjbVYwZFhKdUlERTdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiVXhsWVhabGN5aDBjbVZsTG14bFpuUkRhR2xzWkNFcElDc2diblZ0VEdWaGRtVnpLSFJ5WldVdWNtbG5hSFJEYUdsc1pDRXBPMXh1SUNCOVhHNTlYRzVjYmk4cUtseHVJQ29nUjJWdVpYSmhkR1VnWVc0Z1lYSnlZWGtnYjJZZ2MyVjBjeUJ2WmlCallXNWthV1JoZEdVZ2JtVmhjbVZ6ZENCdVpXbG5hR0p2Y25NZ1lubGNiaUFxSUdOdmJuTjBjblZqZEdsdVp5QmhJSEpoYm1SdmJTQndjbTlxWldOMGFXOXVJR1p2Y21WemRDQmhibVFnZEdGcmFXNW5JSFJvWlNCc1pXRjJaWE1nYjJZZ1lXeHNJSFJvWlZ4dUlDb2dkSEpsWlhNdUlFRnVlU0JuYVhabGJpQjBjbVZsSUdoaGN5QnNaV0YyWlhNZ2RHaGhkQ0JoY21VZ1lTQnpaWFFnYjJZZ2NHOTBaVzUwYVdGc0lHNWxZWEpsYzNSY2JpQXFJRzVsYVdkb1ltOXljeTRnUjJsMlpXNGdaVzV2ZFdkb0lIUnlaV1Z6SUhSb1pTQnpaWFFnYjJZZ1lXeHNJSE4xWTJnZ2JHVmhkbVZ6SUdkcGRtVnpJR0VnWjI5dlpGeHVJQ29nYkdsclpXeHBhRzl2WkNCdlppQm5aWFIwYVc1bklHRWdaMjl2WkNCelpYUWdiMllnYm1WaGNtVnpkQ0J1WldsbmFHSnZjbk1nYVc0Z1kyOXRjRzl6YVhSbExpQlRhVzVqWlZ4dUlDb2djM1ZqYUNCaElISmhibVJ2YlNCd2NtOXFaV04wYVc5dUlHWnZjbVZ6ZENCcGN5QnBibVY0Y0dWdWMybDJaU0IwYnlCamIyMXdkWFJsTENCMGFHbHpJR05oYmlCaVpTQmhYRzRnS2lCMWMyVm1kV3dnYldWaGJuTWdiMllnYzJWbFpHbHVaeUJ2ZEdobGNpQnVaV0Z5WlhOMElHNWxhV2RvWW05eUlHRnNaMjl5YVhSb2JYTXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdFlXdGxUR1ZoWmtGeWNtRjVLSEp3Um05eVpYTjBPaUJHYkdGMFZISmxaVnRkS1RvZ2JuVnRZbVZ5VzExYlhTQjdYRzRnSUdsbUlDaHljRVp2Y21WemRDNXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2IzVjBjSFYwT2lCdWRXMWlaWEpiWFZ0ZElEMGdXMTA3WEc0Z0lDQWdabTl5SUNoc1pYUWdkSEpsWlNCdlppQnljRVp2Y21WemRDa2dlMXh1SUNBZ0lDQWdiM1YwY0hWMExuQjFjMmdvTGk0dWRISmxaUzVwYm1ScFkyVnpJU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdmRYUndkWFE3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnY21WMGRYSnVJRnRiTFRGZFhUdGNiaUFnZlZ4dWZWeHVYRzR2S2lwY2JpQXFJRk5sYkdWamRITWdkR2hsSUhOcFpHVWdiMllnZEdobElIUnlaV1VnZEc4Z2MyVmhjbU5vSUdSMWNtbHVaeUJtYkdGMElIUnlaV1VnYzJWaGNtTm9MbHh1SUNvdlhHNW1kVzVqZEdsdmJpQnpaV3hsWTNSVGFXUmxLRnh1SUNCb2VYQmxjbkJzWVc1bE9pQnVkVzFpWlhJc1hHNGdJRzltWm5ObGREb2diblZ0WW1WeUxGeHVJQ0J3YjJsdWREb2diblZ0WW1WeUxGeHVJQ0J5WVc1a2IyMDZJRkpoYm1SdmJVWnVYRzRwSUh0Y2JpQWdiR1YwSUcxaGNtZHBiaUE5SUc5bVpuTmxkRHRjYmx4dUlDQWdJRzFoY21kcGJpQXJQU0JvZVhCbGNuQnNZVzVsSUNvZ2NHOXBiblE3WEc0Z0lGeHVYRzRnSUdsbUlDaHRZWEpuYVc0Z1BUMDlJREFwSUh0Y2JpQWdJQ0JqYjI1emRDQnphV1JsSUQwZ2RYUnBiSE11ZEdGMVVtRnVaRWx1ZENneUxDQnlZVzVrYjIwcE8xeHVJQ0FnSUhKbGRIVnliaUJ6YVdSbE8xeHVJQ0I5SUdWc2MyVWdhV1lnS0cxaGNtZHBiaUErSURBcElIdGNiaUFnSUNCeVpYUjFjbTRnTUR0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCeVpYUjFjbTRnTVR0Y2JpQWdmVnh1ZlZ4dVhHNHZLaXBjYmlBcUlGTmxZWEpqYUdWeklHRWdabXhoZEhSbGJtVmtJSEp3TFhSeVpXVWdabTl5SUdFZ2NHOXBiblF1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnpaV0Z5WTJoR2JHRjBWSEpsWlNoY2JpQWdjRzlwYm5RNklHNTFiV0psY2l4Y2JpQWdkSEpsWlRvZ1JteGhkRlJ5WldVc1hHNGdJSEpoYm1SdmJUb2dVbUZ1Wkc5dFJtNWNiaWtnZTF4dUlDQnNaWFFnYm05a1pTQTlJREE3WEc0Z0lIZG9hV3hsSUNoMGNtVmxMbU5vYVd4a2NtVnVXMjV2WkdWZFd6QmRJRDRnTUNrZ2UxeHVJQ0FnSUdOdmJuTjBJSE5wWkdVZ1BTQnpaV3hsWTNSVGFXUmxLRnh1SUNBZ0lDQWdkSEpsWlM1b2VYQmxjbkJzWVc1bGMxdHViMlJsWFN4Y2JpQWdJQ0FnSUhSeVpXVXViMlptYzJWMGMxdHViMlJsWFN4Y2JpQWdJQ0FnSUhCdmFXNTBMRnh1SUNBZ0lDQWdjbUZ1Wkc5dFhHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb2MybGtaU0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdibTlrWlNBOUlIUnlaV1V1WTJocGJHUnlaVzViYm05a1pWMWJNRjA3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHNXZaR1VnUFNCMGNtVmxMbU5vYVd4a2NtVnVXMjV2WkdWZFd6RmRPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR052Ym5OMElHbHVaR1Y0SUQwZ0xURWdLaUIwY21WbExtTm9hV3hrY21WdVcyNXZaR1ZkV3pCZE8xeHVJQ0J5WlhSMWNtNGdkSEpsWlM1cGJtUnBZMlZ6VzJsdVpHVjRYVHRjYm4xY2JpSmRmUT09IiwiY29uc3QgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0FueUFycmF5KG9iamVjdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChvYmplY3QpLmVuZHNXaXRoKCdBcnJheV0nKTtcbn1cbiIsIi8qKlxuICogQ2FsY3VsYXRlIGN1cnJlbnQgZXJyb3JcbiAqIEBpZ25vcmVcbiAqIEBwYXJhbSB7e3g6QXJyYXk8bnVtYmVyPiwgeTpBcnJheTxudW1iZXI+fX0gZGF0YSAtIEFycmF5IG9mIHBvaW50cyB0byBmaXQgaW4gdGhlIGZvcm1hdCBbeDEsIHgyLCAuLi4gXSwgW3kxLCB5MiwgLi4uIF1cbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gcGFyYW1ldGVycyAtIEFycmF5IG9mIGN1cnJlbnQgcGFyYW1ldGVyIHZhbHVlc1xuICogQHBhcmFtIHtmdW5jdGlvbn0gcGFyYW1ldGVyaXplZEZ1bmN0aW9uIC0gVGhlIHBhcmFtZXRlcnMgYW5kIHJldHVybnMgYSBmdW5jdGlvbiB3aXRoIHRoZSBpbmRlcGVuZGVudCB2YXJpYWJsZSBhcyBhIHBhcmFtZXRlclxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBlcnJvckNhbGN1bGF0aW9uKFxuICBkYXRhLFxuICBwYXJhbWV0ZXJzLFxuICBwYXJhbWV0ZXJpemVkRnVuY3Rpb24sXG4pIHtcbiAgbGV0IGVycm9yID0gMDtcbiAgY29uc3QgZnVuYyA9IHBhcmFtZXRlcml6ZWRGdW5jdGlvbihwYXJhbWV0ZXJzKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEueC5sZW5ndGg7IGkrKykge1xuICAgIGVycm9yICs9IE1hdGguYWJzKGRhdGEueVtpXSAtIGZ1bmMoZGF0YS54W2ldKSk7XG4gIH1cblxuICByZXR1cm4gZXJyb3I7XG59XG4iLCIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kXG5jb25zdCB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4vKipcbiAqIENoZWNrcyBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgYW4gQXJyYXkgKGFycmF5IG9yIHR5cGVkIGFycmF5LCBleGNlcHQgdGhvc2UgdGhhdCBjb250YWluIGJpZ2ludCB2YWx1ZXMpLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIE9iamVjdCB0byBjaGVjay5cbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIG9iamVjdCBpcyBhbiBhcnJheSBvciBhIHR5cGVkIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBbnlBcnJheSh2YWx1ZSkge1xuICAgIGNvbnN0IHRhZyA9IHRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgIHJldHVybiB0YWcuZW5kc1dpdGgoJ0FycmF5XScpICYmICF0YWcuaW5jbHVkZXMoJ0JpZycpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFxuY29uc3QgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuLyoqXG4gKiBDaGVja3MgaWYgYW4gb2JqZWN0IGlzIGFuIGluc3RhbmNlIG9mIGFuIEFycmF5IChhcnJheSBvciB0eXBlZCBhcnJheSwgZXhjZXB0IHRob3NlIHRoYXQgY29udGFpbiBiaWdpbnQgdmFsdWVzKS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBPYmplY3QgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBvYmplY3QgaXMgYW4gYXJyYXkgb3IgYSB0eXBlZCBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQW55QXJyYXkodmFsdWUpIHtcbiAgICBjb25zdCB0YWcgPSB0b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICByZXR1cm4gdGFnLmVuZHNXaXRoKCdBcnJheV0nKSAmJiAhdGFnLmluY2x1ZGVzKCdCaWcnKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2RcbmNvbnN0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbi8qKlxuICogQ2hlY2tzIGlmIGFuIG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiBhbiBBcnJheSAoYXJyYXkgb3IgdHlwZWQgYXJyYXksIGV4Y2VwdCB0aG9zZSB0aGF0IGNvbnRhaW4gYmlnaW50IHZhbHVlcykuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gT2JqZWN0IHRvIGNoZWNrLlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGFuIGFycmF5IG9yIGEgdHlwZWQgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FueUFycmF5KHZhbHVlKSB7XG4gICAgY29uc3QgdGFnID0gdG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgcmV0dXJuIHRhZy5lbmRzV2l0aCgnQXJyYXldJykgJiYgIXRhZy5pbmNsdWRlcygnQmlnJyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kXG5jb25zdCB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4vKipcbiAqIENoZWNrcyBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgYW4gQXJyYXkgKGFycmF5IG9yIHR5cGVkIGFycmF5LCBleGNlcHQgdGhvc2UgdGhhdCBjb250YWluIGJpZ2ludCB2YWx1ZXMpLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIE9iamVjdCB0byBjaGVjay5cbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIG9iamVjdCBpcyBhbiBhcnJheSBvciBhIHR5cGVkIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBbnlBcnJheSh2YWx1ZSkge1xuICAgIGNvbnN0IHRhZyA9IHRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgIHJldHVybiB0YWcuZW5kc1dpdGgoJ0FycmF5XScpICYmICF0YWcuaW5jbHVkZXMoJ0JpZycpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiaW1wb3J0IHsgaXNBbnlBcnJheSB9IGZyb20gJ2lzLWFueS1hcnJheSc7XG5pbXBvcnQgbWF4IGZyb20gJ21sLWFycmF5LW1heCc7XG5pbXBvcnQgbWluIGZyb20gJ21sLWFycmF5LW1pbic7XG5cbmZ1bmN0aW9uIHJlc2NhbGUoaW5wdXQpIHtcbiAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gIGlmICghaXNBbnlBcnJheShpbnB1dCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnB1dCBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gIH0gZWxzZSBpZiAoaW5wdXQubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW5wdXQgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgfVxuXG4gIHZhciBvdXRwdXQ7XG5cbiAgaWYgKG9wdGlvbnMub3V0cHV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIWlzQW55QXJyYXkob3B0aW9ucy5vdXRwdXQpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvdXRwdXQgb3B0aW9uIG11c3QgYmUgYW4gYXJyYXkgaWYgc3BlY2lmaWVkJyk7XG4gICAgfVxuXG4gICAgb3V0cHV0ID0gb3B0aW9ucy5vdXRwdXQ7XG4gIH0gZWxzZSB7XG4gICAgb3V0cHV0ID0gbmV3IEFycmF5KGlucHV0Lmxlbmd0aCk7XG4gIH1cblxuICB2YXIgY3VycmVudE1pbiA9IG1pbihpbnB1dCk7XG4gIHZhciBjdXJyZW50TWF4ID0gbWF4KGlucHV0KTtcblxuICBpZiAoY3VycmVudE1pbiA9PT0gY3VycmVudE1heCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdtaW5pbXVtIGFuZCBtYXhpbXVtIGlucHV0IHZhbHVlcyBhcmUgZXF1YWwuIENhbm5vdCByZXNjYWxlIGEgY29uc3RhbnQgYXJyYXknKTtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyRtaW4gPSBvcHRpb25zLm1pbixcbiAgICAgIG1pblZhbHVlID0gX29wdGlvbnMkbWluID09PSB2b2lkIDAgPyBvcHRpb25zLmF1dG9NaW5NYXggPyBjdXJyZW50TWluIDogMCA6IF9vcHRpb25zJG1pbixcbiAgICAgIF9vcHRpb25zJG1heCA9IG9wdGlvbnMubWF4LFxuICAgICAgbWF4VmFsdWUgPSBfb3B0aW9ucyRtYXggPT09IHZvaWQgMCA/IG9wdGlvbnMuYXV0b01pbk1heCA/IGN1cnJlbnRNYXggOiAxIDogX29wdGlvbnMkbWF4O1xuXG4gIGlmIChtaW5WYWx1ZSA+PSBtYXhWYWx1ZSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdtaW4gb3B0aW9uIG11c3QgYmUgc21hbGxlciB0aGFuIG1heCBvcHRpb24nKTtcbiAgfVxuXG4gIHZhciBmYWN0b3IgPSAobWF4VmFsdWUgLSBtaW5WYWx1ZSkgLyAoY3VycmVudE1heCAtIGN1cnJlbnRNaW4pO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHtcbiAgICBvdXRwdXRbaV0gPSAoaW5wdXRbaV0gLSBjdXJyZW50TWluKSAqIGZhY3RvciArIG1pblZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuZXhwb3J0IHsgcmVzY2FsZSBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQgeyBpc0FueUFycmF5IH0gZnJvbSAnaXMtYW55LWFycmF5JztcblxuZnVuY3Rpb24gbWluKGlucHV0KSB7XG4gIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuICBpZiAoIWlzQW55QXJyYXkoaW5wdXQpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW5wdXQgbXVzdCBiZSBhbiBhcnJheScpO1xuICB9XG5cbiAgaWYgKGlucHV0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2lucHV0IG11c3Qgbm90IGJlIGVtcHR5Jyk7XG4gIH1cblxuICB2YXIgX29wdGlvbnMkZnJvbUluZGV4ID0gb3B0aW9ucy5mcm9tSW5kZXgsXG4gICAgICBmcm9tSW5kZXggPSBfb3B0aW9ucyRmcm9tSW5kZXggPT09IHZvaWQgMCA/IDAgOiBfb3B0aW9ucyRmcm9tSW5kZXgsXG4gICAgICBfb3B0aW9ucyR0b0luZGV4ID0gb3B0aW9ucy50b0luZGV4LFxuICAgICAgdG9JbmRleCA9IF9vcHRpb25zJHRvSW5kZXggPT09IHZvaWQgMCA/IGlucHV0Lmxlbmd0aCA6IF9vcHRpb25zJHRvSW5kZXg7XG5cbiAgaWYgKGZyb21JbmRleCA8IDAgfHwgZnJvbUluZGV4ID49IGlucHV0Lmxlbmd0aCB8fCAhTnVtYmVyLmlzSW50ZWdlcihmcm9tSW5kZXgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdmcm9tSW5kZXggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgc21hbGxlciB0aGFuIGxlbmd0aCcpO1xuICB9XG5cbiAgaWYgKHRvSW5kZXggPD0gZnJvbUluZGV4IHx8IHRvSW5kZXggPiBpbnB1dC5sZW5ndGggfHwgIU51bWJlci5pc0ludGVnZXIodG9JbmRleCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3RvSW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBmcm9tSW5kZXggYW5kIGF0IG1vc3QgZXF1YWwgdG8gbGVuZ3RoJyk7XG4gIH1cblxuICB2YXIgbWluVmFsdWUgPSBpbnB1dFtmcm9tSW5kZXhdO1xuXG4gIGZvciAodmFyIGkgPSBmcm9tSW5kZXggKyAxOyBpIDwgdG9JbmRleDsgaSsrKSB7XG4gICAgaWYgKGlucHV0W2ldIDwgbWluVmFsdWUpIG1pblZhbHVlID0gaW5wdXRbaV07XG4gIH1cblxuICByZXR1cm4gbWluVmFsdWU7XG59XG5cbmV4cG9ydCB7IG1pbiBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQgeyBpc0FueUFycmF5IH0gZnJvbSAnaXMtYW55LWFycmF5JztcblxuZnVuY3Rpb24gbWF4KGlucHV0KSB7XG4gIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuICBpZiAoIWlzQW55QXJyYXkoaW5wdXQpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW5wdXQgbXVzdCBiZSBhbiBhcnJheScpO1xuICB9XG5cbiAgaWYgKGlucHV0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2lucHV0IG11c3Qgbm90IGJlIGVtcHR5Jyk7XG4gIH1cblxuICB2YXIgX29wdGlvbnMkZnJvbUluZGV4ID0gb3B0aW9ucy5mcm9tSW5kZXgsXG4gICAgICBmcm9tSW5kZXggPSBfb3B0aW9ucyRmcm9tSW5kZXggPT09IHZvaWQgMCA/IDAgOiBfb3B0aW9ucyRmcm9tSW5kZXgsXG4gICAgICBfb3B0aW9ucyR0b0luZGV4ID0gb3B0aW9ucy50b0luZGV4LFxuICAgICAgdG9JbmRleCA9IF9vcHRpb25zJHRvSW5kZXggPT09IHZvaWQgMCA/IGlucHV0Lmxlbmd0aCA6IF9vcHRpb25zJHRvSW5kZXg7XG5cbiAgaWYgKGZyb21JbmRleCA8IDAgfHwgZnJvbUluZGV4ID49IGlucHV0Lmxlbmd0aCB8fCAhTnVtYmVyLmlzSW50ZWdlcihmcm9tSW5kZXgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdmcm9tSW5kZXggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgc21hbGxlciB0aGFuIGxlbmd0aCcpO1xuICB9XG5cbiAgaWYgKHRvSW5kZXggPD0gZnJvbUluZGV4IHx8IHRvSW5kZXggPiBpbnB1dC5sZW5ndGggfHwgIU51bWJlci5pc0ludGVnZXIodG9JbmRleCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3RvSW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBmcm9tSW5kZXggYW5kIGF0IG1vc3QgZXF1YWwgdG8gbGVuZ3RoJyk7XG4gIH1cblxuICB2YXIgbWF4VmFsdWUgPSBpbnB1dFtmcm9tSW5kZXhdO1xuXG4gIGZvciAodmFyIGkgPSBmcm9tSW5kZXggKyAxOyBpIDwgdG9JbmRleDsgaSsrKSB7XG4gICAgaWYgKGlucHV0W2ldID4gbWF4VmFsdWUpIG1heFZhbHVlID0gaW5wdXRbaV07XG4gIH1cblxuICByZXR1cm4gbWF4VmFsdWU7XG59XG5cbmV4cG9ydCB7IG1heCBhcyBkZWZhdWx0IH07XG4iLCJjb25zdCBpbmRlbnQgPSAnICcucmVwZWF0KDIpO1xuY29uc3QgaW5kZW50RGF0YSA9ICcgJy5yZXBlYXQoNCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNwZWN0TWF0cml4KCkge1xuICByZXR1cm4gaW5zcGVjdE1hdHJpeFdpdGhPcHRpb25zKHRoaXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zcGVjdE1hdHJpeFdpdGhPcHRpb25zKG1hdHJpeCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBtYXhSb3dzID0gMTUsXG4gICAgbWF4Q29sdW1ucyA9IDEwLFxuICAgIG1heE51bVNpemUgPSA4LFxuICAgIHBhZE1pbnVzID0gJ2F1dG8nLFxuICB9ID0gb3B0aW9ucztcbiAgcmV0dXJuIGAke21hdHJpeC5jb25zdHJ1Y3Rvci5uYW1lfSB7XG4ke2luZGVudH1bXG4ke2luZGVudERhdGF9JHtpbnNwZWN0RGF0YShtYXRyaXgsIG1heFJvd3MsIG1heENvbHVtbnMsIG1heE51bVNpemUsIHBhZE1pbnVzKX1cbiR7aW5kZW50fV1cbiR7aW5kZW50fXJvd3M6ICR7bWF0cml4LnJvd3N9XG4ke2luZGVudH1jb2x1bW5zOiAke21hdHJpeC5jb2x1bW5zfVxufWA7XG59XG5cbmZ1bmN0aW9uIGluc3BlY3REYXRhKG1hdHJpeCwgbWF4Um93cywgbWF4Q29sdW1ucywgbWF4TnVtU2l6ZSwgcGFkTWludXMpIHtcbiAgY29uc3QgeyByb3dzLCBjb2x1bW5zIH0gPSBtYXRyaXg7XG4gIGNvbnN0IG1heEkgPSBNYXRoLm1pbihyb3dzLCBtYXhSb3dzKTtcbiAgY29uc3QgbWF4SiA9IE1hdGgubWluKGNvbHVtbnMsIG1heENvbHVtbnMpO1xuICBjb25zdCByZXN1bHQgPSBbXTtcblxuICBpZiAocGFkTWludXMgPT09ICdhdXRvJykge1xuICAgIHBhZE1pbnVzID0gZmFsc2U7XG4gICAgbG9vcDogZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhJOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbWF4SjsgaisrKSB7XG4gICAgICAgIGlmIChtYXRyaXguZ2V0KGksIGopIDwgMCkge1xuICAgICAgICAgIHBhZE1pbnVzID0gdHJ1ZTtcbiAgICAgICAgICBicmVhayBsb29wO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhJOyBpKyspIHtcbiAgICBsZXQgbGluZSA9IFtdO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbWF4SjsgaisrKSB7XG4gICAgICBsaW5lLnB1c2goZm9ybWF0TnVtYmVyKG1hdHJpeC5nZXQoaSwgaiksIG1heE51bVNpemUsIHBhZE1pbnVzKSk7XG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKGAke2xpbmUuam9pbignICcpfWApO1xuICB9XG4gIGlmIChtYXhKICE9PSBjb2x1bW5zKSB7XG4gICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSArPSBgIC4uLiAke2NvbHVtbnMgLSBtYXhDb2x1bW5zfSBtb3JlIGNvbHVtbnNgO1xuICB9XG4gIGlmIChtYXhJICE9PSByb3dzKSB7XG4gICAgcmVzdWx0LnB1c2goYC4uLiAke3Jvd3MgLSBtYXhSb3dzfSBtb3JlIHJvd3NgKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LmpvaW4oYFxcbiR7aW5kZW50RGF0YX1gKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0TnVtYmVyKG51bSwgbWF4TnVtU2l6ZSwgcGFkTWludXMpIHtcbiAgcmV0dXJuIChcbiAgICBudW0gPj0gMCAmJiBwYWRNaW51c1xuICAgICAgPyBgICR7Zm9ybWF0TnVtYmVyMihudW0sIG1heE51bVNpemUgLSAxKX1gXG4gICAgICA6IGZvcm1hdE51bWJlcjIobnVtLCBtYXhOdW1TaXplKVxuICApLnBhZEVuZChtYXhOdW1TaXplKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0TnVtYmVyMihudW0sIGxlbikge1xuICAvLyBzbWFsbC5sZW5ndGggbnVtYmVycyBzaG91bGQgYmUgYXMgaXNcbiAgbGV0IHN0ciA9IG51bS50b1N0cmluZygpO1xuICBpZiAoc3RyLmxlbmd0aCA8PSBsZW4pIHJldHVybiBzdHI7XG5cbiAgLy8gKDcpJzAuMDAxMjMnIGlzIGJldHRlciB0aGVuICg3KScxLjIzZS0yJ1xuICAvLyAoOCknMC4wMDAxMjMnIGlzIHdvcnNlIHRoZW4gKDcpJzEuMjNlLTMnLFxuICBsZXQgZml4ID0gbnVtLnRvRml4ZWQobGVuKTtcbiAgaWYgKGZpeC5sZW5ndGggPiBsZW4pIHtcbiAgICBmaXggPSBudW0udG9GaXhlZChNYXRoLm1heCgwLCBsZW4gLSAoZml4Lmxlbmd0aCAtIGxlbikpKTtcbiAgfVxuICBpZiAoXG4gICAgZml4Lmxlbmd0aCA8PSBsZW4gJiZcbiAgICAhZml4LnN0YXJ0c1dpdGgoJzAuMDAwJykgJiZcbiAgICAhZml4LnN0YXJ0c1dpdGgoJy0wLjAwMCcpXG4gICkge1xuICAgIHJldHVybiBmaXg7XG4gIH1cblxuICAvLyB3ZWxsLCBpZiBpdCdzIHN0aWxsIHRvbyBsb25nIHRoZSB1c2VyIHNob3VsZCd2ZSB1c2VkIGxvbmdlciBudW1iZXJzXG4gIGxldCBleHAgPSBudW0udG9FeHBvbmVudGlhbChsZW4pO1xuICBpZiAoZXhwLmxlbmd0aCA+IGxlbikge1xuICAgIGV4cCA9IG51bS50b0V4cG9uZW50aWFsKE1hdGgubWF4KDAsIGxlbiAtIChleHAubGVuZ3RoIC0gbGVuKSkpO1xuICB9XG4gIHJldHVybiBleHAuc2xpY2UoMCk7XG59XG4iLCJpbXBvcnQgeyBpc0FueUFycmF5IH0gZnJvbSAnaXMtYW55LWFycmF5JztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICogQ2hlY2sgdGhhdCBhIHJvdyBpbmRleCBpcyBub3Qgb3V0IG9mIGJvdW5kc1xuICogQHBhcmFtIHtNYXRyaXh9IG1hdHJpeFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvdXRlcl1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUm93SW5kZXgobWF0cml4LCBpbmRleCwgb3V0ZXIpIHtcbiAgbGV0IG1heCA9IG91dGVyID8gbWF0cml4LnJvd3MgOiBtYXRyaXgucm93cyAtIDE7XG4gIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiBtYXgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignUm93IGluZGV4IG91dCBvZiByYW5nZScpO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqIENoZWNrIHRoYXQgYSBjb2x1bW4gaW5kZXggaXMgbm90IG91dCBvZiBib3VuZHNcbiAqIEBwYXJhbSB7TWF0cml4fSBtYXRyaXhcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHBhcmFtIHtib29sZWFufSBbb3V0ZXJdXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0NvbHVtbkluZGV4KG1hdHJpeCwgaW5kZXgsIG91dGVyKSB7XG4gIGxldCBtYXggPSBvdXRlciA/IG1hdHJpeC5jb2x1bW5zIDogbWF0cml4LmNvbHVtbnMgLSAxO1xuICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gbWF4KSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0NvbHVtbiBpbmRleCBvdXQgb2YgcmFuZ2UnKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBDaGVjayB0aGF0IHRoZSBwcm92aWRlZCB2ZWN0b3IgaXMgYW4gYXJyYXkgd2l0aCB0aGUgcmlnaHQgbGVuZ3RoXG4gKiBAcGFyYW0ge01hdHJpeH0gbWF0cml4XG4gKiBAcGFyYW0ge0FycmF5fE1hdHJpeH0gdmVjdG9yXG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1Jvd1ZlY3RvcihtYXRyaXgsIHZlY3Rvcikge1xuICBpZiAodmVjdG9yLnRvMURBcnJheSkge1xuICAgIHZlY3RvciA9IHZlY3Rvci50bzFEQXJyYXkoKTtcbiAgfVxuICBpZiAodmVjdG9yLmxlbmd0aCAhPT0gbWF0cml4LmNvbHVtbnMpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcbiAgICAgICd2ZWN0b3Igc2l6ZSBtdXN0IGJlIHRoZSBzYW1lIGFzIHRoZSBudW1iZXIgb2YgY29sdW1ucycsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdmVjdG9yO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBDaGVjayB0aGF0IHRoZSBwcm92aWRlZCB2ZWN0b3IgaXMgYW4gYXJyYXkgd2l0aCB0aGUgcmlnaHQgbGVuZ3RoXG4gKiBAcGFyYW0ge01hdHJpeH0gbWF0cml4XG4gKiBAcGFyYW0ge0FycmF5fE1hdHJpeH0gdmVjdG9yXG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0NvbHVtblZlY3RvcihtYXRyaXgsIHZlY3Rvcikge1xuICBpZiAodmVjdG9yLnRvMURBcnJheSkge1xuICAgIHZlY3RvciA9IHZlY3Rvci50bzFEQXJyYXkoKTtcbiAgfVxuICBpZiAodmVjdG9yLmxlbmd0aCAhPT0gbWF0cml4LnJvd3MpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndmVjdG9yIHNpemUgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgbnVtYmVyIG9mIHJvd3MnKTtcbiAgfVxuICByZXR1cm4gdmVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSb3dJbmRpY2VzKG1hdHJpeCwgcm93SW5kaWNlcykge1xuICBpZiAoIWlzQW55QXJyYXkocm93SW5kaWNlcykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdyb3cgaW5kaWNlcyBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd0luZGljZXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocm93SW5kaWNlc1tpXSA8IDAgfHwgcm93SW5kaWNlc1tpXSA+PSBtYXRyaXgucm93cykge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3JvdyBpbmRpY2VzIGFyZSBvdXQgb2YgcmFuZ2UnKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQ29sdW1uSW5kaWNlcyhtYXRyaXgsIGNvbHVtbkluZGljZXMpIHtcbiAgaWYgKCFpc0FueUFycmF5KGNvbHVtbkluZGljZXMpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY29sdW1uIGluZGljZXMgbXVzdCBiZSBhbiBhcnJheScpO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5JbmRpY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGNvbHVtbkluZGljZXNbaV0gPCAwIHx8IGNvbHVtbkluZGljZXNbaV0gPj0gbWF0cml4LmNvbHVtbnMpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdjb2x1bW4gaW5kaWNlcyBhcmUgb3V0IG9mIHJhbmdlJyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1JhbmdlKG1hdHJpeCwgc3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2x1bW4sIGVuZENvbHVtbikge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPT0gNSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdleHBlY3RlZCA0IGFyZ3VtZW50cycpO1xuICB9XG4gIGNoZWNrTnVtYmVyKCdzdGFydFJvdycsIHN0YXJ0Um93KTtcbiAgY2hlY2tOdW1iZXIoJ2VuZFJvdycsIGVuZFJvdyk7XG4gIGNoZWNrTnVtYmVyKCdzdGFydENvbHVtbicsIHN0YXJ0Q29sdW1uKTtcbiAgY2hlY2tOdW1iZXIoJ2VuZENvbHVtbicsIGVuZENvbHVtbik7XG4gIGlmIChcbiAgICBzdGFydFJvdyA+IGVuZFJvdyB8fFxuICAgIHN0YXJ0Q29sdW1uID4gZW5kQ29sdW1uIHx8XG4gICAgc3RhcnRSb3cgPCAwIHx8XG4gICAgc3RhcnRSb3cgPj0gbWF0cml4LnJvd3MgfHxcbiAgICBlbmRSb3cgPCAwIHx8XG4gICAgZW5kUm93ID49IG1hdHJpeC5yb3dzIHx8XG4gICAgc3RhcnRDb2x1bW4gPCAwIHx8XG4gICAgc3RhcnRDb2x1bW4gPj0gbWF0cml4LmNvbHVtbnMgfHxcbiAgICBlbmRDb2x1bW4gPCAwIHx8XG4gICAgZW5kQ29sdW1uID49IG1hdHJpeC5jb2x1bW5zXG4gICkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdTdWJtYXRyaXggaW5kaWNlcyBhcmUgb3V0IG9mIHJhbmdlJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld0FycmF5KGxlbmd0aCwgdmFsdWUgPSAwKSB7XG4gIGxldCBhcnJheSA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgYXJyYXkucHVzaCh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5mdW5jdGlvbiBjaGVja051bWJlcihuYW1lLCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCR7bmFtZX0gbXVzdCBiZSBhIG51bWJlcmApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja05vbkVtcHR5KG1hdHJpeCkge1xuICBpZiAobWF0cml4LmlzRW1wdHkoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRW1wdHkgbWF0cml4IGhhcyBubyBlbGVtZW50cyB0byBpbmRleCcpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBpc0FueUFycmF5IH0gZnJvbSAnaXMtYW55LWFycmF5JztcbmltcG9ydCByZXNjYWxlIGZyb20gJ21sLWFycmF5LXJlc2NhbGUnO1xuXG5pbXBvcnQgeyBpbnNwZWN0TWF0cml4LCBpbnNwZWN0TWF0cml4V2l0aE9wdGlvbnMgfSBmcm9tICcuL2luc3BlY3QnO1xuaW1wb3J0IHsgaW5zdGFsbE1hdGhPcGVyYXRpb25zIH0gZnJvbSAnLi9tYXRoT3BlcmF0aW9ucyc7XG5pbXBvcnQge1xuICBzdW1CeVJvdyxcbiAgc3VtQnlDb2x1bW4sXG4gIHN1bUFsbCxcbiAgcHJvZHVjdEJ5Um93LFxuICBwcm9kdWN0QnlDb2x1bW4sXG4gIHByb2R1Y3RBbGwsXG4gIHZhcmlhbmNlQnlSb3csXG4gIHZhcmlhbmNlQnlDb2x1bW4sXG4gIHZhcmlhbmNlQWxsLFxuICBjZW50ZXJCeVJvdyxcbiAgY2VudGVyQnlDb2x1bW4sXG4gIGNlbnRlckFsbCxcbiAgc2NhbGVCeVJvdyxcbiAgc2NhbGVCeUNvbHVtbixcbiAgc2NhbGVBbGwsXG4gIGdldFNjYWxlQnlSb3csXG4gIGdldFNjYWxlQnlDb2x1bW4sXG4gIGdldFNjYWxlQWxsLFxufSBmcm9tICcuL3N0YXQnO1xuaW1wb3J0IHtcbiAgY2hlY2tSb3dWZWN0b3IsXG4gIGNoZWNrUm93SW5kZXgsXG4gIGNoZWNrQ29sdW1uSW5kZXgsXG4gIGNoZWNrQ29sdW1uVmVjdG9yLFxuICBjaGVja1JhbmdlLFxuICBjaGVja05vbkVtcHR5LFxuICBjaGVja1Jvd0luZGljZXMsXG4gIGNoZWNrQ29sdW1uSW5kaWNlcyxcbn0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGNsYXNzIEFic3RyYWN0TWF0cml4IHtcbiAgc3RhdGljIGZyb20xREFycmF5KG5ld1Jvd3MsIG5ld0NvbHVtbnMsIG5ld0RhdGEpIHtcbiAgICBsZXQgbGVuZ3RoID0gbmV3Um93cyAqIG5ld0NvbHVtbnM7XG4gICAgaWYgKGxlbmd0aCAhPT0gbmV3RGF0YS5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdkYXRhIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBnaXZlbiBkaW1lbnNpb25zJyk7XG4gICAgfVxuICAgIGxldCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG5ld1Jvd3MsIG5ld0NvbHVtbnMpO1xuICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IG5ld1Jvd3M7IHJvdysrKSB7XG4gICAgICBmb3IgKGxldCBjb2x1bW4gPSAwOyBjb2x1bW4gPCBuZXdDb2x1bW5zOyBjb2x1bW4rKykge1xuICAgICAgICBuZXdNYXRyaXguc2V0KHJvdywgY29sdW1uLCBuZXdEYXRhW3JvdyAqIG5ld0NvbHVtbnMgKyBjb2x1bW5dKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld01hdHJpeDtcbiAgfVxuXG4gIHN0YXRpYyByb3dWZWN0b3IobmV3RGF0YSkge1xuICAgIGxldCB2ZWN0b3IgPSBuZXcgTWF0cml4KDEsIG5ld0RhdGEubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld0RhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZlY3Rvci5zZXQoMCwgaSwgbmV3RGF0YVtpXSk7XG4gICAgfVxuICAgIHJldHVybiB2ZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgY29sdW1uVmVjdG9yKG5ld0RhdGEpIHtcbiAgICBsZXQgdmVjdG9yID0gbmV3IE1hdHJpeChuZXdEYXRhLmxlbmd0aCwgMSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuZXdEYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2ZWN0b3Iuc2V0KGksIDAsIG5ld0RhdGFbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gdmVjdG9yO1xuICB9XG5cbiAgc3RhdGljIHplcm9zKHJvd3MsIGNvbHVtbnMpIHtcbiAgICByZXR1cm4gbmV3IE1hdHJpeChyb3dzLCBjb2x1bW5zKTtcbiAgfVxuXG4gIHN0YXRpYyBvbmVzKHJvd3MsIGNvbHVtbnMpIHtcbiAgICByZXR1cm4gbmV3IE1hdHJpeChyb3dzLCBjb2x1bW5zKS5maWxsKDEpO1xuICB9XG5cbiAgc3RhdGljIHJhbmQocm93cywgY29sdW1ucywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICAgIH1cbiAgICBjb25zdCB7IHJhbmRvbSA9IE1hdGgucmFuZG9tIH0gPSBvcHRpb25zO1xuICAgIGxldCBtYXRyaXggPSBuZXcgTWF0cml4KHJvd3MsIGNvbHVtbnMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbHVtbnM7IGorKykge1xuICAgICAgICBtYXRyaXguc2V0KGksIGosIHJhbmRvbSgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbiAgfVxuXG4gIHN0YXRpYyByYW5kSW50KHJvd3MsIGNvbHVtbnMsIG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICB9XG4gICAgY29uc3QgeyBtaW4gPSAwLCBtYXggPSAxMDAwLCByYW5kb20gPSBNYXRoLnJhbmRvbSB9ID0gb3B0aW9ucztcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIobWluKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignbWluIG11c3QgYmUgYW4gaW50ZWdlcicpO1xuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihtYXgpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdtYXggbXVzdCBiZSBhbiBpbnRlZ2VyJyk7XG4gICAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Jyk7XG4gICAgbGV0IGludGVydmFsID0gbWF4IC0gbWluO1xuICAgIGxldCBtYXRyaXggPSBuZXcgTWF0cml4KHJvd3MsIGNvbHVtbnMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbHVtbnM7IGorKykge1xuICAgICAgICBsZXQgdmFsdWUgPSBtaW4gKyBNYXRoLnJvdW5kKHJhbmRvbSgpICogaW50ZXJ2YWwpO1xuICAgICAgICBtYXRyaXguc2V0KGksIGosIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbiAgfVxuXG4gIHN0YXRpYyBleWUocm93cywgY29sdW1ucywgdmFsdWUpIHtcbiAgICBpZiAoY29sdW1ucyA9PT0gdW5kZWZpbmVkKSBjb2x1bW5zID0gcm93cztcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgdmFsdWUgPSAxO1xuICAgIGxldCBtaW4gPSBNYXRoLm1pbihyb3dzLCBjb2x1bW5zKTtcbiAgICBsZXQgbWF0cml4ID0gdGhpcy56ZXJvcyhyb3dzLCBjb2x1bW5zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1pbjsgaSsrKSB7XG4gICAgICBtYXRyaXguc2V0KGksIGksIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbiAgfVxuXG4gIHN0YXRpYyBkaWFnKGRhdGEsIHJvd3MsIGNvbHVtbnMpIHtcbiAgICBsZXQgbCA9IGRhdGEubGVuZ3RoO1xuICAgIGlmIChyb3dzID09PSB1bmRlZmluZWQpIHJvd3MgPSBsO1xuICAgIGlmIChjb2x1bW5zID09PSB1bmRlZmluZWQpIGNvbHVtbnMgPSByb3dzO1xuICAgIGxldCBtaW4gPSBNYXRoLm1pbihsLCByb3dzLCBjb2x1bW5zKTtcbiAgICBsZXQgbWF0cml4ID0gdGhpcy56ZXJvcyhyb3dzLCBjb2x1bW5zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1pbjsgaSsrKSB7XG4gICAgICBtYXRyaXguc2V0KGksIGksIGRhdGFbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xuICB9XG5cbiAgc3RhdGljIG1pbihtYXRyaXgxLCBtYXRyaXgyKSB7XG4gICAgbWF0cml4MSA9IHRoaXMuY2hlY2tNYXRyaXgobWF0cml4MSk7XG4gICAgbWF0cml4MiA9IHRoaXMuY2hlY2tNYXRyaXgobWF0cml4Mik7XG4gICAgbGV0IHJvd3MgPSBtYXRyaXgxLnJvd3M7XG4gICAgbGV0IGNvbHVtbnMgPSBtYXRyaXgxLmNvbHVtbnM7XG4gICAgbGV0IHJlc3VsdCA9IG5ldyBNYXRyaXgocm93cywgY29sdW1ucyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY29sdW1uczsgaisrKSB7XG4gICAgICAgIHJlc3VsdC5zZXQoaSwgaiwgTWF0aC5taW4obWF0cml4MS5nZXQoaSwgaiksIG1hdHJpeDIuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgbWF4KG1hdHJpeDEsIG1hdHJpeDIpIHtcbiAgICBtYXRyaXgxID0gdGhpcy5jaGVja01hdHJpeChtYXRyaXgxKTtcbiAgICBtYXRyaXgyID0gdGhpcy5jaGVja01hdHJpeChtYXRyaXgyKTtcbiAgICBsZXQgcm93cyA9IG1hdHJpeDEucm93cztcbiAgICBsZXQgY29sdW1ucyA9IG1hdHJpeDEuY29sdW1ucztcbiAgICBsZXQgcmVzdWx0ID0gbmV3IHRoaXMocm93cywgY29sdW1ucyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY29sdW1uczsgaisrKSB7XG4gICAgICAgIHJlc3VsdC5zZXQoaSwgaiwgTWF0aC5tYXgobWF0cml4MS5nZXQoaSwgaiksIG1hdHJpeDIuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgY2hlY2tNYXRyaXgodmFsdWUpIHtcbiAgICByZXR1cm4gQWJzdHJhY3RNYXRyaXguaXNNYXRyaXgodmFsdWUpID8gdmFsdWUgOiBuZXcgTWF0cml4KHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBpc01hdHJpeCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHZhbHVlLmtsYXNzID09PSAnTWF0cml4JztcbiAgfVxuXG4gIGdldCBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLnJvd3MgKiB0aGlzLmNvbHVtbnM7XG4gIH1cblxuICBhcHBseShjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcywgaSwgaik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdG8xREFycmF5KCkge1xuICAgIGxldCBhcnJheSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgYXJyYXkucHVzaCh0aGlzLmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhcnJheTtcbiAgfVxuXG4gIHRvMkRBcnJheSgpIHtcbiAgICBsZXQgY29weSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGNvcHkucHVzaChbXSk7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIGNvcHlbaV0ucHVzaCh0aGlzLmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb3B5O1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB0aGlzLnRvMkRBcnJheSgpO1xuICB9XG5cbiAgaXNSb3dWZWN0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMucm93cyA9PT0gMTtcbiAgfVxuXG4gIGlzQ29sdW1uVmVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMgPT09IDE7XG4gIH1cblxuICBpc1ZlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5yb3dzID09PSAxIHx8IHRoaXMuY29sdW1ucyA9PT0gMTtcbiAgfVxuXG4gIGlzU3F1YXJlKCkge1xuICAgIHJldHVybiB0aGlzLnJvd3MgPT09IHRoaXMuY29sdW1ucztcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMucm93cyA9PT0gMCB8fCB0aGlzLmNvbHVtbnMgPT09IDA7XG4gIH1cblxuICBpc1N5bW1ldHJpYygpIHtcbiAgICBpZiAodGhpcy5pc1NxdWFyZSgpKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDw9IGk7IGorKykge1xuICAgICAgICAgIGlmICh0aGlzLmdldChpLCBqKSAhPT0gdGhpcy5nZXQoaiwgaSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc0VjaGVsb25Gb3JtKCkge1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgaiA9IDA7XG4gICAgbGV0IHByZXZpb3VzQ29sdW1uID0gLTE7XG4gICAgbGV0IGlzRWNoZWxvbkZvcm0gPSB0cnVlO1xuICAgIGxldCBjaGVja2VkID0gZmFsc2U7XG4gICAgd2hpbGUgKGkgPCB0aGlzLnJvd3MgJiYgaXNFY2hlbG9uRm9ybSkge1xuICAgICAgaiA9IDA7XG4gICAgICBjaGVja2VkID0gZmFsc2U7XG4gICAgICB3aGlsZSAoaiA8IHRoaXMuY29sdW1ucyAmJiBjaGVja2VkID09PSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5nZXQoaSwgaikgPT09IDApIHtcbiAgICAgICAgICBqKys7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5nZXQoaSwgaikgPT09IDEgJiYgaiA+IHByZXZpb3VzQ29sdW1uKSB7XG4gICAgICAgICAgY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgcHJldmlvdXNDb2x1bW4gPSBqO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzRWNoZWxvbkZvcm0gPSBmYWxzZTtcbiAgICAgICAgICBjaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSsrO1xuICAgIH1cbiAgICByZXR1cm4gaXNFY2hlbG9uRm9ybTtcbiAgfVxuXG4gIGlzUmVkdWNlZEVjaGVsb25Gb3JtKCkge1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgaiA9IDA7XG4gICAgbGV0IHByZXZpb3VzQ29sdW1uID0gLTE7XG4gICAgbGV0IGlzUmVkdWNlZEVjaGVsb25Gb3JtID0gdHJ1ZTtcbiAgICBsZXQgY2hlY2tlZCA9IGZhbHNlO1xuICAgIHdoaWxlIChpIDwgdGhpcy5yb3dzICYmIGlzUmVkdWNlZEVjaGVsb25Gb3JtKSB7XG4gICAgICBqID0gMDtcbiAgICAgIGNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIHdoaWxlIChqIDwgdGhpcy5jb2x1bW5zICYmIGNoZWNrZWQgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLmdldChpLCBqKSA9PT0gMCkge1xuICAgICAgICAgIGorKztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmdldChpLCBqKSA9PT0gMSAmJiBqID4gcHJldmlvdXNDb2x1bW4pIHtcbiAgICAgICAgICBjaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICBwcmV2aW91c0NvbHVtbiA9IGo7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNSZWR1Y2VkRWNoZWxvbkZvcm0gPSBmYWxzZTtcbiAgICAgICAgICBjaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChsZXQgayA9IGogKyAxOyBrIDwgdGhpcy5yb3dzOyBrKyspIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0KGksIGspICE9PSAwKSB7XG4gICAgICAgICAgaXNSZWR1Y2VkRWNoZWxvbkZvcm0gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSsrO1xuICAgIH1cbiAgICByZXR1cm4gaXNSZWR1Y2VkRWNoZWxvbkZvcm07XG4gIH1cblxuICBlY2hlbG9uRm9ybSgpIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5jbG9uZSgpO1xuICAgIGxldCBoID0gMDtcbiAgICBsZXQgayA9IDA7XG4gICAgd2hpbGUgKGggPCByZXN1bHQucm93cyAmJiBrIDwgcmVzdWx0LmNvbHVtbnMpIHtcbiAgICAgIGxldCBpTWF4ID0gaDtcbiAgICAgIGZvciAobGV0IGkgPSBoOyBpIDwgcmVzdWx0LnJvd3M7IGkrKykge1xuICAgICAgICBpZiAocmVzdWx0LmdldChpLCBrKSA+IHJlc3VsdC5nZXQoaU1heCwgaykpIHtcbiAgICAgICAgICBpTWF4ID0gaTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5nZXQoaU1heCwgaykgPT09IDApIHtcbiAgICAgICAgaysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0LnN3YXBSb3dzKGgsIGlNYXgpO1xuICAgICAgICBsZXQgdG1wID0gcmVzdWx0LmdldChoLCBrKTtcbiAgICAgICAgZm9yIChsZXQgaiA9IGs7IGogPCByZXN1bHQuY29sdW1uczsgaisrKSB7XG4gICAgICAgICAgcmVzdWx0LnNldChoLCBqLCByZXN1bHQuZ2V0KGgsIGopIC8gdG1wKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gaCArIDE7IGkgPCByZXN1bHQucm93czsgaSsrKSB7XG4gICAgICAgICAgbGV0IGZhY3RvciA9IHJlc3VsdC5nZXQoaSwgaykgLyByZXN1bHQuZ2V0KGgsIGspO1xuICAgICAgICAgIHJlc3VsdC5zZXQoaSwgaywgMCk7XG4gICAgICAgICAgZm9yIChsZXQgaiA9IGsgKyAxOyBqIDwgcmVzdWx0LmNvbHVtbnM7IGorKykge1xuICAgICAgICAgICAgcmVzdWx0LnNldChpLCBqLCByZXN1bHQuZ2V0KGksIGopIC0gcmVzdWx0LmdldChoLCBqKSAqIGZhY3Rvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGgrKztcbiAgICAgICAgaysrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVkdWNlZEVjaGVsb25Gb3JtKCkge1xuICAgIGxldCByZXN1bHQgPSB0aGlzLmVjaGVsb25Gb3JtKCk7XG4gICAgbGV0IG0gPSByZXN1bHQuY29sdW1ucztcbiAgICBsZXQgbiA9IHJlc3VsdC5yb3dzO1xuICAgIGxldCBoID0gbiAtIDE7XG4gICAgd2hpbGUgKGggPj0gMCkge1xuICAgICAgaWYgKHJlc3VsdC5tYXhSb3coaCkgPT09IDApIHtcbiAgICAgICAgaC0tO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHAgPSAwO1xuICAgICAgICBsZXQgcGl2b3QgPSBmYWxzZTtcbiAgICAgICAgd2hpbGUgKHAgPCBuICYmIHBpdm90ID09PSBmYWxzZSkge1xuICAgICAgICAgIGlmIChyZXN1bHQuZ2V0KGgsIHApID09PSAxKSB7XG4gICAgICAgICAgICBwaXZvdCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHArKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoOyBpKyspIHtcbiAgICAgICAgICBsZXQgZmFjdG9yID0gcmVzdWx0LmdldChpLCBwKTtcbiAgICAgICAgICBmb3IgKGxldCBqID0gcDsgaiA8IG07IGorKykge1xuICAgICAgICAgICAgbGV0IHRtcCA9IHJlc3VsdC5nZXQoaSwgaikgLSBmYWN0b3IgKiByZXN1bHQuZ2V0KGgsIGopO1xuICAgICAgICAgICAgcmVzdWx0LnNldChpLCBqLCB0bXApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoLS07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzZXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXQgbWV0aG9kIGlzIHVuaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGdldCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2dldCBtZXRob2QgaXMgdW5pbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgcmVwZWF0KG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICB9XG4gICAgY29uc3QgeyByb3dzID0gMSwgY29sdW1ucyA9IDEgfSA9IG9wdGlvbnM7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHJvd3MpIHx8IHJvd3MgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncm93cyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcicpO1xuICAgIH1cbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29sdW1ucykgfHwgY29sdW1ucyA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdjb2x1bW5zIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyJyk7XG4gICAgfVxuICAgIGxldCBtYXRyaXggPSBuZXcgTWF0cml4KHRoaXMucm93cyAqIHJvd3MsIHRoaXMuY29sdW1ucyAqIGNvbHVtbnMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbHVtbnM7IGorKykge1xuICAgICAgICBtYXRyaXguc2V0U3ViTWF0cml4KHRoaXMsIHRoaXMucm93cyAqIGksIHRoaXMuY29sdW1ucyAqIGopO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xuICB9XG5cbiAgZmlsbCh2YWx1ZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG5lZygpIHtcbiAgICByZXR1cm4gdGhpcy5tdWxTKC0xKTtcbiAgfVxuXG4gIGdldFJvdyhpbmRleCkge1xuICAgIGNoZWNrUm93SW5kZXgodGhpcywgaW5kZXgpO1xuICAgIGxldCByb3cgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sdW1uczsgaSsrKSB7XG4gICAgICByb3cucHVzaCh0aGlzLmdldChpbmRleCwgaSkpO1xuICAgIH1cbiAgICByZXR1cm4gcm93O1xuICB9XG5cbiAgZ2V0Um93VmVjdG9yKGluZGV4KSB7XG4gICAgcmV0dXJuIE1hdHJpeC5yb3dWZWN0b3IodGhpcy5nZXRSb3coaW5kZXgpKTtcbiAgfVxuXG4gIHNldFJvdyhpbmRleCwgYXJyYXkpIHtcbiAgICBjaGVja1Jvd0luZGV4KHRoaXMsIGluZGV4KTtcbiAgICBhcnJheSA9IGNoZWNrUm93VmVjdG9yKHRoaXMsIGFycmF5KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sdW1uczsgaSsrKSB7XG4gICAgICB0aGlzLnNldChpbmRleCwgaSwgYXJyYXlbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN3YXBSb3dzKHJvdzEsIHJvdzIpIHtcbiAgICBjaGVja1Jvd0luZGV4KHRoaXMsIHJvdzEpO1xuICAgIGNoZWNrUm93SW5kZXgodGhpcywgcm93Mik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnM7IGkrKykge1xuICAgICAgbGV0IHRlbXAgPSB0aGlzLmdldChyb3cxLCBpKTtcbiAgICAgIHRoaXMuc2V0KHJvdzEsIGksIHRoaXMuZ2V0KHJvdzIsIGkpKTtcbiAgICAgIHRoaXMuc2V0KHJvdzIsIGksIHRlbXApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldENvbHVtbihpbmRleCkge1xuICAgIGNoZWNrQ29sdW1uSW5kZXgodGhpcywgaW5kZXgpO1xuICAgIGxldCBjb2x1bW4gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBjb2x1bW4ucHVzaCh0aGlzLmdldChpLCBpbmRleCkpO1xuICAgIH1cbiAgICByZXR1cm4gY29sdW1uO1xuICB9XG5cbiAgZ2V0Q29sdW1uVmVjdG9yKGluZGV4KSB7XG4gICAgcmV0dXJuIE1hdHJpeC5jb2x1bW5WZWN0b3IodGhpcy5nZXRDb2x1bW4oaW5kZXgpKTtcbiAgfVxuXG4gIHNldENvbHVtbihpbmRleCwgYXJyYXkpIHtcbiAgICBjaGVja0NvbHVtbkluZGV4KHRoaXMsIGluZGV4KTtcbiAgICBhcnJheSA9IGNoZWNrQ29sdW1uVmVjdG9yKHRoaXMsIGFycmF5KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICB0aGlzLnNldChpLCBpbmRleCwgYXJyYXlbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN3YXBDb2x1bW5zKGNvbHVtbjEsIGNvbHVtbjIpIHtcbiAgICBjaGVja0NvbHVtbkluZGV4KHRoaXMsIGNvbHVtbjEpO1xuICAgIGNoZWNrQ29sdW1uSW5kZXgodGhpcywgY29sdW1uMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgbGV0IHRlbXAgPSB0aGlzLmdldChpLCBjb2x1bW4xKTtcbiAgICAgIHRoaXMuc2V0KGksIGNvbHVtbjEsIHRoaXMuZ2V0KGksIGNvbHVtbjIpKTtcbiAgICAgIHRoaXMuc2V0KGksIGNvbHVtbjIsIHRlbXApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFkZFJvd1ZlY3Rvcih2ZWN0b3IpIHtcbiAgICB2ZWN0b3IgPSBjaGVja1Jvd1ZlY3Rvcih0aGlzLCB2ZWN0b3IpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgKyB2ZWN0b3Jbal0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN1YlJvd1ZlY3Rvcih2ZWN0b3IpIHtcbiAgICB2ZWN0b3IgPSBjaGVja1Jvd1ZlY3Rvcih0aGlzLCB2ZWN0b3IpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgLSB2ZWN0b3Jbal0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG11bFJvd1ZlY3Rvcih2ZWN0b3IpIHtcbiAgICB2ZWN0b3IgPSBjaGVja1Jvd1ZlY3Rvcih0aGlzLCB2ZWN0b3IpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgKiB2ZWN0b3Jbal0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRpdlJvd1ZlY3Rvcih2ZWN0b3IpIHtcbiAgICB2ZWN0b3IgPSBjaGVja1Jvd1ZlY3Rvcih0aGlzLCB2ZWN0b3IpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgLyB2ZWN0b3Jbal0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFkZENvbHVtblZlY3Rvcih2ZWN0b3IpIHtcbiAgICB2ZWN0b3IgPSBjaGVja0NvbHVtblZlY3Rvcih0aGlzLCB2ZWN0b3IpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgKyB2ZWN0b3JbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN1YkNvbHVtblZlY3Rvcih2ZWN0b3IpIHtcbiAgICB2ZWN0b3IgPSBjaGVja0NvbHVtblZlY3Rvcih0aGlzLCB2ZWN0b3IpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgLSB2ZWN0b3JbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG11bENvbHVtblZlY3Rvcih2ZWN0b3IpIHtcbiAgICB2ZWN0b3IgPSBjaGVja0NvbHVtblZlY3Rvcih0aGlzLCB2ZWN0b3IpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgKiB2ZWN0b3JbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRpdkNvbHVtblZlY3Rvcih2ZWN0b3IpIHtcbiAgICB2ZWN0b3IgPSBjaGVja0NvbHVtblZlY3Rvcih0aGlzLCB2ZWN0b3IpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgLyB2ZWN0b3JbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG11bFJvdyhpbmRleCwgdmFsdWUpIHtcbiAgICBjaGVja1Jvd0luZGV4KHRoaXMsIGluZGV4KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sdW1uczsgaSsrKSB7XG4gICAgICB0aGlzLnNldChpbmRleCwgaSwgdGhpcy5nZXQoaW5kZXgsIGkpICogdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG11bENvbHVtbihpbmRleCwgdmFsdWUpIHtcbiAgICBjaGVja0NvbHVtbkluZGV4KHRoaXMsIGluZGV4KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICB0aGlzLnNldChpLCBpbmRleCwgdGhpcy5nZXQoaSwgaW5kZXgpICogdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG1heChieSkge1xuICAgIGlmICh0aGlzLmlzRW1wdHkoKSkge1xuICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG4gICAgc3dpdGNoIChieSkge1xuICAgICAgY2FzZSAncm93Jzoge1xuICAgICAgICBjb25zdCBtYXggPSBuZXcgQXJyYXkodGhpcy5yb3dzKS5maWxsKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7XG4gICAgICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IHRoaXMucm93czsgcm93KyspIHtcbiAgICAgICAgICBmb3IgKGxldCBjb2x1bW4gPSAwOyBjb2x1bW4gPCB0aGlzLmNvbHVtbnM7IGNvbHVtbisrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5nZXQocm93LCBjb2x1bW4pID4gbWF4W3Jvd10pIHtcbiAgICAgICAgICAgICAgbWF4W3Jvd10gPSB0aGlzLmdldChyb3csIGNvbHVtbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgICB9XG4gICAgICBjYXNlICdjb2x1bW4nOiB7XG4gICAgICAgIGNvbnN0IG1heCA9IG5ldyBBcnJheSh0aGlzLmNvbHVtbnMpLmZpbGwoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKTtcbiAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgdGhpcy5yb3dzOyByb3crKykge1xuICAgICAgICAgIGZvciAobGV0IGNvbHVtbiA9IDA7IGNvbHVtbiA8IHRoaXMuY29sdW1uczsgY29sdW1uKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdldChyb3csIGNvbHVtbikgPiBtYXhbY29sdW1uXSkge1xuICAgICAgICAgICAgICBtYXhbY29sdW1uXSA9IHRoaXMuZ2V0KHJvdywgY29sdW1uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1heDtcbiAgICAgIH1cbiAgICAgIGNhc2UgdW5kZWZpbmVkOiB7XG4gICAgICAgIGxldCBtYXggPSB0aGlzLmdldCgwLCAwKTtcbiAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgdGhpcy5yb3dzOyByb3crKykge1xuICAgICAgICAgIGZvciAobGV0IGNvbHVtbiA9IDA7IGNvbHVtbiA8IHRoaXMuY29sdW1uczsgY29sdW1uKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdldChyb3csIGNvbHVtbikgPiBtYXgpIHtcbiAgICAgICAgICAgICAgbWF4ID0gdGhpcy5nZXQocm93LCBjb2x1bW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHtieX1gKTtcbiAgICB9XG4gIH1cblxuICBtYXhJbmRleCgpIHtcbiAgICBjaGVja05vbkVtcHR5KHRoaXMpO1xuICAgIGxldCB2ID0gdGhpcy5nZXQoMCwgMCk7XG4gICAgbGV0IGlkeCA9IFswLCAwXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIGlmICh0aGlzLmdldChpLCBqKSA+IHYpIHtcbiAgICAgICAgICB2ID0gdGhpcy5nZXQoaSwgaik7XG4gICAgICAgICAgaWR4WzBdID0gaTtcbiAgICAgICAgICBpZHhbMV0gPSBqO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZHg7XG4gIH1cblxuICBtaW4oYnkpIHtcbiAgICBpZiAodGhpcy5pc0VtcHR5KCkpIHtcbiAgICAgIHJldHVybiBOYU47XG4gICAgfVxuXG4gICAgc3dpdGNoIChieSkge1xuICAgICAgY2FzZSAncm93Jzoge1xuICAgICAgICBjb25zdCBtaW4gPSBuZXcgQXJyYXkodGhpcy5yb3dzKS5maWxsKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7XG4gICAgICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IHRoaXMucm93czsgcm93KyspIHtcbiAgICAgICAgICBmb3IgKGxldCBjb2x1bW4gPSAwOyBjb2x1bW4gPCB0aGlzLmNvbHVtbnM7IGNvbHVtbisrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5nZXQocm93LCBjb2x1bW4pIDwgbWluW3Jvd10pIHtcbiAgICAgICAgICAgICAgbWluW3Jvd10gPSB0aGlzLmdldChyb3csIGNvbHVtbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaW47XG4gICAgICB9XG4gICAgICBjYXNlICdjb2x1bW4nOiB7XG4gICAgICAgIGNvbnN0IG1pbiA9IG5ldyBBcnJheSh0aGlzLmNvbHVtbnMpLmZpbGwoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtcbiAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgdGhpcy5yb3dzOyByb3crKykge1xuICAgICAgICAgIGZvciAobGV0IGNvbHVtbiA9IDA7IGNvbHVtbiA8IHRoaXMuY29sdW1uczsgY29sdW1uKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdldChyb3csIGNvbHVtbikgPCBtaW5bY29sdW1uXSkge1xuICAgICAgICAgICAgICBtaW5bY29sdW1uXSA9IHRoaXMuZ2V0KHJvdywgY29sdW1uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICAgIH1cbiAgICAgIGNhc2UgdW5kZWZpbmVkOiB7XG4gICAgICAgIGxldCBtaW4gPSB0aGlzLmdldCgwLCAwKTtcbiAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgdGhpcy5yb3dzOyByb3crKykge1xuICAgICAgICAgIGZvciAobGV0IGNvbHVtbiA9IDA7IGNvbHVtbiA8IHRoaXMuY29sdW1uczsgY29sdW1uKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdldChyb3csIGNvbHVtbikgPCBtaW4pIHtcbiAgICAgICAgICAgICAgbWluID0gdGhpcy5nZXQocm93LCBjb2x1bW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWluO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHtieX1gKTtcbiAgICB9XG4gIH1cblxuICBtaW5JbmRleCgpIHtcbiAgICBjaGVja05vbkVtcHR5KHRoaXMpO1xuICAgIGxldCB2ID0gdGhpcy5nZXQoMCwgMCk7XG4gICAgbGV0IGlkeCA9IFswLCAwXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIGlmICh0aGlzLmdldChpLCBqKSA8IHYpIHtcbiAgICAgICAgICB2ID0gdGhpcy5nZXQoaSwgaik7XG4gICAgICAgICAgaWR4WzBdID0gaTtcbiAgICAgICAgICBpZHhbMV0gPSBqO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZHg7XG4gIH1cblxuICBtYXhSb3cocm93KSB7XG4gICAgY2hlY2tSb3dJbmRleCh0aGlzLCByb3cpO1xuICAgIGlmICh0aGlzLmlzRW1wdHkoKSkge1xuICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG4gICAgbGV0IHYgPSB0aGlzLmdldChyb3csIDApO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgdGhpcy5jb2x1bW5zOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmdldChyb3csIGkpID4gdikge1xuICAgICAgICB2ID0gdGhpcy5nZXQocm93LCBpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBtYXhSb3dJbmRleChyb3cpIHtcbiAgICBjaGVja1Jvd0luZGV4KHRoaXMsIHJvdyk7XG4gICAgY2hlY2tOb25FbXB0eSh0aGlzKTtcbiAgICBsZXQgdiA9IHRoaXMuZ2V0KHJvdywgMCk7XG4gICAgbGV0IGlkeCA9IFtyb3csIDBdO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgdGhpcy5jb2x1bW5zOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmdldChyb3csIGkpID4gdikge1xuICAgICAgICB2ID0gdGhpcy5nZXQocm93LCBpKTtcbiAgICAgICAgaWR4WzFdID0gaTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlkeDtcbiAgfVxuXG4gIG1pblJvdyhyb3cpIHtcbiAgICBjaGVja1Jvd0luZGV4KHRoaXMsIHJvdyk7XG4gICAgaWYgKHRoaXMuaXNFbXB0eSgpKSB7XG4gICAgICByZXR1cm4gTmFOO1xuICAgIH1cbiAgICBsZXQgdiA9IHRoaXMuZ2V0KHJvdywgMCk7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLmNvbHVtbnM7IGkrKykge1xuICAgICAgaWYgKHRoaXMuZ2V0KHJvdywgaSkgPCB2KSB7XG4gICAgICAgIHYgPSB0aGlzLmdldChyb3csIGkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIG1pblJvd0luZGV4KHJvdykge1xuICAgIGNoZWNrUm93SW5kZXgodGhpcywgcm93KTtcbiAgICBjaGVja05vbkVtcHR5KHRoaXMpO1xuICAgIGxldCB2ID0gdGhpcy5nZXQocm93LCAwKTtcbiAgICBsZXQgaWR4ID0gW3JvdywgMF07XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLmNvbHVtbnM7IGkrKykge1xuICAgICAgaWYgKHRoaXMuZ2V0KHJvdywgaSkgPCB2KSB7XG4gICAgICAgIHYgPSB0aGlzLmdldChyb3csIGkpO1xuICAgICAgICBpZHhbMV0gPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaWR4O1xuICB9XG5cbiAgbWF4Q29sdW1uKGNvbHVtbikge1xuICAgIGNoZWNrQ29sdW1uSW5kZXgodGhpcywgY29sdW1uKTtcbiAgICBpZiAodGhpcy5pc0VtcHR5KCkpIHtcbiAgICAgIHJldHVybiBOYU47XG4gICAgfVxuICAgIGxldCB2ID0gdGhpcy5nZXQoMCwgY29sdW1uKTtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5nZXQoaSwgY29sdW1uKSA+IHYpIHtcbiAgICAgICAgdiA9IHRoaXMuZ2V0KGksIGNvbHVtbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2O1xuICB9XG5cbiAgbWF4Q29sdW1uSW5kZXgoY29sdW1uKSB7XG4gICAgY2hlY2tDb2x1bW5JbmRleCh0aGlzLCBjb2x1bW4pO1xuICAgIGNoZWNrTm9uRW1wdHkodGhpcyk7XG4gICAgbGV0IHYgPSB0aGlzLmdldCgwLCBjb2x1bW4pO1xuICAgIGxldCBpZHggPSBbMCwgY29sdW1uXTtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5nZXQoaSwgY29sdW1uKSA+IHYpIHtcbiAgICAgICAgdiA9IHRoaXMuZ2V0KGksIGNvbHVtbik7XG4gICAgICAgIGlkeFswXSA9IGk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZHg7XG4gIH1cblxuICBtaW5Db2x1bW4oY29sdW1uKSB7XG4gICAgY2hlY2tDb2x1bW5JbmRleCh0aGlzLCBjb2x1bW4pO1xuICAgIGlmICh0aGlzLmlzRW1wdHkoKSkge1xuICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG4gICAgbGV0IHYgPSB0aGlzLmdldCgwLCBjb2x1bW4pO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmdldChpLCBjb2x1bW4pIDwgdikge1xuICAgICAgICB2ID0gdGhpcy5nZXQoaSwgY29sdW1uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBtaW5Db2x1bW5JbmRleChjb2x1bW4pIHtcbiAgICBjaGVja0NvbHVtbkluZGV4KHRoaXMsIGNvbHVtbik7XG4gICAgY2hlY2tOb25FbXB0eSh0aGlzKTtcbiAgICBsZXQgdiA9IHRoaXMuZ2V0KDAsIGNvbHVtbik7XG4gICAgbGV0IGlkeCA9IFswLCBjb2x1bW5dO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmdldChpLCBjb2x1bW4pIDwgdikge1xuICAgICAgICB2ID0gdGhpcy5nZXQoaSwgY29sdW1uKTtcbiAgICAgICAgaWR4WzBdID0gaTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlkeDtcbiAgfVxuXG4gIGRpYWcoKSB7XG4gICAgbGV0IG1pbiA9IE1hdGgubWluKHRoaXMucm93cywgdGhpcy5jb2x1bW5zKTtcbiAgICBsZXQgZGlhZyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWluOyBpKyspIHtcbiAgICAgIGRpYWcucHVzaCh0aGlzLmdldChpLCBpKSk7XG4gICAgfVxuICAgIHJldHVybiBkaWFnO1xuICB9XG5cbiAgbm9ybSh0eXBlID0gJ2Zyb2Jlbml1cycpIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBpZiAodHlwZSA9PT0gJ21heCcpIHtcbiAgICAgIHJldHVybiB0aGlzLm1heCgpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Zyb2Jlbml1cycpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHRoaXMuZ2V0KGksIGopICogdGhpcy5nZXQoaSwgaik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBNYXRoLnNxcnQocmVzdWx0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYHVua25vd24gbm9ybSB0eXBlOiAke3R5cGV9YCk7XG4gICAgfVxuICB9XG5cbiAgY3VtdWxhdGl2ZVN1bSgpIHtcbiAgICBsZXQgc3VtID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHN1bSArPSB0aGlzLmdldChpLCBqKTtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgc3VtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkb3QodmVjdG9yMikge1xuICAgIGlmIChBYnN0cmFjdE1hdHJpeC5pc01hdHJpeCh2ZWN0b3IyKSkgdmVjdG9yMiA9IHZlY3RvcjIudG8xREFycmF5KCk7XG4gICAgbGV0IHZlY3RvcjEgPSB0aGlzLnRvMURBcnJheSgpO1xuICAgIGlmICh2ZWN0b3IxLmxlbmd0aCAhPT0gdmVjdG9yMi5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd2ZWN0b3JzIGRvIG5vdCBoYXZlIHRoZSBzYW1lIHNpemUnKTtcbiAgICB9XG4gICAgbGV0IGRvdCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2ZWN0b3IxLmxlbmd0aDsgaSsrKSB7XG4gICAgICBkb3QgKz0gdmVjdG9yMVtpXSAqIHZlY3RvcjJbaV07XG4gICAgfVxuICAgIHJldHVybiBkb3Q7XG4gIH1cblxuICBtbXVsKG90aGVyKSB7XG4gICAgb3RoZXIgPSBNYXRyaXguY2hlY2tNYXRyaXgob3RoZXIpO1xuXG4gICAgbGV0IG0gPSB0aGlzLnJvd3M7XG4gICAgbGV0IG4gPSB0aGlzLmNvbHVtbnM7XG4gICAgbGV0IHAgPSBvdGhlci5jb2x1bW5zO1xuXG4gICAgbGV0IHJlc3VsdCA9IG5ldyBNYXRyaXgobSwgcCk7XG5cbiAgICBsZXQgQmNvbGogPSBuZXcgRmxvYXQ2NEFycmF5KG4pO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgcDsgaisrKSB7XG4gICAgICBmb3IgKGxldCBrID0gMDsgayA8IG47IGsrKykge1xuICAgICAgICBCY29saltrXSA9IG90aGVyLmdldChrLCBqKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgbGV0IHMgPSAwO1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IG47IGsrKykge1xuICAgICAgICAgIHMgKz0gdGhpcy5nZXQoaSwgaykgKiBCY29saltrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdC5zZXQoaSwgaiwgcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdHJhc3NlbjJ4MihvdGhlcikge1xuICAgIG90aGVyID0gTWF0cml4LmNoZWNrTWF0cml4KG90aGVyKTtcbiAgICBsZXQgcmVzdWx0ID0gbmV3IE1hdHJpeCgyLCAyKTtcbiAgICBjb25zdCBhMTEgPSB0aGlzLmdldCgwLCAwKTtcbiAgICBjb25zdCBiMTEgPSBvdGhlci5nZXQoMCwgMCk7XG4gICAgY29uc3QgYTEyID0gdGhpcy5nZXQoMCwgMSk7XG4gICAgY29uc3QgYjEyID0gb3RoZXIuZ2V0KDAsIDEpO1xuICAgIGNvbnN0IGEyMSA9IHRoaXMuZ2V0KDEsIDApO1xuICAgIGNvbnN0IGIyMSA9IG90aGVyLmdldCgxLCAwKTtcbiAgICBjb25zdCBhMjIgPSB0aGlzLmdldCgxLCAxKTtcbiAgICBjb25zdCBiMjIgPSBvdGhlci5nZXQoMSwgMSk7XG5cbiAgICAvLyBDb21wdXRlIGludGVybWVkaWF0ZSB2YWx1ZXMuXG4gICAgY29uc3QgbTEgPSAoYTExICsgYTIyKSAqIChiMTEgKyBiMjIpO1xuICAgIGNvbnN0IG0yID0gKGEyMSArIGEyMikgKiBiMTE7XG4gICAgY29uc3QgbTMgPSBhMTEgKiAoYjEyIC0gYjIyKTtcbiAgICBjb25zdCBtNCA9IGEyMiAqIChiMjEgLSBiMTEpO1xuICAgIGNvbnN0IG01ID0gKGExMSArIGExMikgKiBiMjI7XG4gICAgY29uc3QgbTYgPSAoYTIxIC0gYTExKSAqIChiMTEgKyBiMTIpO1xuICAgIGNvbnN0IG03ID0gKGExMiAtIGEyMikgKiAoYjIxICsgYjIyKTtcblxuICAgIC8vIENvbWJpbmUgaW50ZXJtZWRpYXRlIHZhbHVlcyBpbnRvIHRoZSBvdXRwdXQuXG4gICAgY29uc3QgYzAwID0gbTEgKyBtNCAtIG01ICsgbTc7XG4gICAgY29uc3QgYzAxID0gbTMgKyBtNTtcbiAgICBjb25zdCBjMTAgPSBtMiArIG00O1xuICAgIGNvbnN0IGMxMSA9IG0xIC0gbTIgKyBtMyArIG02O1xuXG4gICAgcmVzdWx0LnNldCgwLCAwLCBjMDApO1xuICAgIHJlc3VsdC5zZXQoMCwgMSwgYzAxKTtcbiAgICByZXN1bHQuc2V0KDEsIDAsIGMxMCk7XG4gICAgcmVzdWx0LnNldCgxLCAxLCBjMTEpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdHJhc3NlbjN4MyhvdGhlcikge1xuICAgIG90aGVyID0gTWF0cml4LmNoZWNrTWF0cml4KG90aGVyKTtcbiAgICBsZXQgcmVzdWx0ID0gbmV3IE1hdHJpeCgzLCAzKTtcblxuICAgIGNvbnN0IGEwMCA9IHRoaXMuZ2V0KDAsIDApO1xuICAgIGNvbnN0IGEwMSA9IHRoaXMuZ2V0KDAsIDEpO1xuICAgIGNvbnN0IGEwMiA9IHRoaXMuZ2V0KDAsIDIpO1xuICAgIGNvbnN0IGExMCA9IHRoaXMuZ2V0KDEsIDApO1xuICAgIGNvbnN0IGExMSA9IHRoaXMuZ2V0KDEsIDEpO1xuICAgIGNvbnN0IGExMiA9IHRoaXMuZ2V0KDEsIDIpO1xuICAgIGNvbnN0IGEyMCA9IHRoaXMuZ2V0KDIsIDApO1xuICAgIGNvbnN0IGEyMSA9IHRoaXMuZ2V0KDIsIDEpO1xuICAgIGNvbnN0IGEyMiA9IHRoaXMuZ2V0KDIsIDIpO1xuXG4gICAgY29uc3QgYjAwID0gb3RoZXIuZ2V0KDAsIDApO1xuICAgIGNvbnN0IGIwMSA9IG90aGVyLmdldCgwLCAxKTtcbiAgICBjb25zdCBiMDIgPSBvdGhlci5nZXQoMCwgMik7XG4gICAgY29uc3QgYjEwID0gb3RoZXIuZ2V0KDEsIDApO1xuICAgIGNvbnN0IGIxMSA9IG90aGVyLmdldCgxLCAxKTtcbiAgICBjb25zdCBiMTIgPSBvdGhlci5nZXQoMSwgMik7XG4gICAgY29uc3QgYjIwID0gb3RoZXIuZ2V0KDIsIDApO1xuICAgIGNvbnN0IGIyMSA9IG90aGVyLmdldCgyLCAxKTtcbiAgICBjb25zdCBiMjIgPSBvdGhlci5nZXQoMiwgMik7XG5cbiAgICBjb25zdCBtMSA9IChhMDAgKyBhMDEgKyBhMDIgLSBhMTAgLSBhMTEgLSBhMjEgLSBhMjIpICogYjExO1xuICAgIGNvbnN0IG0yID0gKGEwMCAtIGExMCkgKiAoLWIwMSArIGIxMSk7XG4gICAgY29uc3QgbTMgPSBhMTEgKiAoLWIwMCArIGIwMSArIGIxMCAtIGIxMSAtIGIxMiAtIGIyMCArIGIyMik7XG4gICAgY29uc3QgbTQgPSAoLWEwMCArIGExMCArIGExMSkgKiAoYjAwIC0gYjAxICsgYjExKTtcbiAgICBjb25zdCBtNSA9IChhMTAgKyBhMTEpICogKC1iMDAgKyBiMDEpO1xuICAgIGNvbnN0IG02ID0gYTAwICogYjAwO1xuICAgIGNvbnN0IG03ID0gKC1hMDAgKyBhMjAgKyBhMjEpICogKGIwMCAtIGIwMiArIGIxMik7XG4gICAgY29uc3QgbTggPSAoLWEwMCArIGEyMCkgKiAoYjAyIC0gYjEyKTtcbiAgICBjb25zdCBtOSA9IChhMjAgKyBhMjEpICogKC1iMDAgKyBiMDIpO1xuICAgIGNvbnN0IG0xMCA9IChhMDAgKyBhMDEgKyBhMDIgLSBhMTEgLSBhMTIgLSBhMjAgLSBhMjEpICogYjEyO1xuICAgIGNvbnN0IG0xMSA9IGEyMSAqICgtYjAwICsgYjAyICsgYjEwIC0gYjExIC0gYjEyIC0gYjIwICsgYjIxKTtcbiAgICBjb25zdCBtMTIgPSAoLWEwMiArIGEyMSArIGEyMikgKiAoYjExICsgYjIwIC0gYjIxKTtcbiAgICBjb25zdCBtMTMgPSAoYTAyIC0gYTIyKSAqIChiMTEgLSBiMjEpO1xuICAgIGNvbnN0IG0xNCA9IGEwMiAqIGIyMDtcbiAgICBjb25zdCBtMTUgPSAoYTIxICsgYTIyKSAqICgtYjIwICsgYjIxKTtcbiAgICBjb25zdCBtMTYgPSAoLWEwMiArIGExMSArIGExMikgKiAoYjEyICsgYjIwIC0gYjIyKTtcbiAgICBjb25zdCBtMTcgPSAoYTAyIC0gYTEyKSAqIChiMTIgLSBiMjIpO1xuICAgIGNvbnN0IG0xOCA9IChhMTEgKyBhMTIpICogKC1iMjAgKyBiMjIpO1xuICAgIGNvbnN0IG0xOSA9IGEwMSAqIGIxMDtcbiAgICBjb25zdCBtMjAgPSBhMTIgKiBiMjE7XG4gICAgY29uc3QgbTIxID0gYTEwICogYjAyO1xuICAgIGNvbnN0IG0yMiA9IGEyMCAqIGIwMTtcbiAgICBjb25zdCBtMjMgPSBhMjIgKiBiMjI7XG5cbiAgICBjb25zdCBjMDAgPSBtNiArIG0xNCArIG0xOTtcbiAgICBjb25zdCBjMDEgPSBtMSArIG00ICsgbTUgKyBtNiArIG0xMiArIG0xNCArIG0xNTtcbiAgICBjb25zdCBjMDIgPSBtNiArIG03ICsgbTkgKyBtMTAgKyBtMTQgKyBtMTYgKyBtMTg7XG4gICAgY29uc3QgYzEwID0gbTIgKyBtMyArIG00ICsgbTYgKyBtMTQgKyBtMTYgKyBtMTc7XG4gICAgY29uc3QgYzExID0gbTIgKyBtNCArIG01ICsgbTYgKyBtMjA7XG4gICAgY29uc3QgYzEyID0gbTE0ICsgbTE2ICsgbTE3ICsgbTE4ICsgbTIxO1xuICAgIGNvbnN0IGMyMCA9IG02ICsgbTcgKyBtOCArIG0xMSArIG0xMiArIG0xMyArIG0xNDtcbiAgICBjb25zdCBjMjEgPSBtMTIgKyBtMTMgKyBtMTQgKyBtMTUgKyBtMjI7XG4gICAgY29uc3QgYzIyID0gbTYgKyBtNyArIG04ICsgbTkgKyBtMjM7XG5cbiAgICByZXN1bHQuc2V0KDAsIDAsIGMwMCk7XG4gICAgcmVzdWx0LnNldCgwLCAxLCBjMDEpO1xuICAgIHJlc3VsdC5zZXQoMCwgMiwgYzAyKTtcbiAgICByZXN1bHQuc2V0KDEsIDAsIGMxMCk7XG4gICAgcmVzdWx0LnNldCgxLCAxLCBjMTEpO1xuICAgIHJlc3VsdC5zZXQoMSwgMiwgYzEyKTtcbiAgICByZXN1bHQuc2V0KDIsIDAsIGMyMCk7XG4gICAgcmVzdWx0LnNldCgyLCAxLCBjMjEpO1xuICAgIHJlc3VsdC5zZXQoMiwgMiwgYzIyKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgbW11bFN0cmFzc2VuKHkpIHtcbiAgICB5ID0gTWF0cml4LmNoZWNrTWF0cml4KHkpO1xuICAgIGxldCB4ID0gdGhpcy5jbG9uZSgpO1xuICAgIGxldCByMSA9IHgucm93cztcbiAgICBsZXQgYzEgPSB4LmNvbHVtbnM7XG4gICAgbGV0IHIyID0geS5yb3dzO1xuICAgIGxldCBjMiA9IHkuY29sdW1ucztcbiAgICBpZiAoYzEgIT09IHIyKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTXVsdGlwbHlpbmcgJHtyMX0geCAke2MxfSBhbmQgJHtyMn0geCAke2MyfSBtYXRyaXg6IGRpbWVuc2lvbnMgZG8gbm90IG1hdGNoLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFB1dCBhIG1hdHJpeCBpbnRvIHRoZSB0b3AgbGVmdCBvZiBhIG1hdHJpeCBvZiB6ZXJvcy5cbiAgICAvLyBgcm93c2AgYW5kIGBjb2xzYCBhcmUgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIG91dHB1dCBtYXRyaXguXG4gICAgZnVuY3Rpb24gZW1iZWQobWF0LCByb3dzLCBjb2xzKSB7XG4gICAgICBsZXQgciA9IG1hdC5yb3dzO1xuICAgICAgbGV0IGMgPSBtYXQuY29sdW1ucztcbiAgICAgIGlmIChyID09PSByb3dzICYmIGMgPT09IGNvbHMpIHtcbiAgICAgICAgcmV0dXJuIG1hdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCByZXN1bHRhdCA9IEFic3RyYWN0TWF0cml4Lnplcm9zKHJvd3MsIGNvbHMpO1xuICAgICAgICByZXN1bHRhdCA9IHJlc3VsdGF0LnNldFN1Yk1hdHJpeChtYXQsIDAsIDApO1xuICAgICAgICByZXR1cm4gcmVzdWx0YXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIGJvdGggbWF0cmljZXMgYXJlIHRoZSBzYW1lIHNpemUuXG4gICAgLy8gVGhpcyBpcyBleGNsdXNpdmVseSBmb3Igc2ltcGxpY2l0eTpcbiAgICAvLyB0aGlzIGFsZ29yaXRobSBjYW4gYmUgaW1wbGVtZW50ZWQgd2l0aCBtYXRyaWNlcyBvZiBkaWZmZXJlbnQgc2l6ZXMuXG5cbiAgICBsZXQgciA9IE1hdGgubWF4KHIxLCByMik7XG4gICAgbGV0IGMgPSBNYXRoLm1heChjMSwgYzIpO1xuICAgIHggPSBlbWJlZCh4LCByLCBjKTtcbiAgICB5ID0gZW1iZWQoeSwgciwgYyk7XG5cbiAgICAvLyBPdXIgcmVjdXJzaXZlIG11bHRpcGxpY2F0aW9uIGZ1bmN0aW9uLlxuICAgIGZ1bmN0aW9uIGJsb2NrTXVsdChhLCBiLCByb3dzLCBjb2xzKSB7XG4gICAgICAvLyBGb3Igc21hbGwgbWF0cmljZXMsIHJlc29ydCB0byBuYWl2ZSBtdWx0aXBsaWNhdGlvbi5cbiAgICAgIGlmIChyb3dzIDw9IDUxMiB8fCBjb2xzIDw9IDUxMikge1xuICAgICAgICByZXR1cm4gYS5tbXVsKGIpOyAvLyBhIGlzIGVxdWl2YWxlbnQgdG8gdGhpc1xuICAgICAgfVxuXG4gICAgICAvLyBBcHBseSBkeW5hbWljIHBhZGRpbmcuXG4gICAgICBpZiAocm93cyAlIDIgPT09IDEgJiYgY29scyAlIDIgPT09IDEpIHtcbiAgICAgICAgYSA9IGVtYmVkKGEsIHJvd3MgKyAxLCBjb2xzICsgMSk7XG4gICAgICAgIGIgPSBlbWJlZChiLCByb3dzICsgMSwgY29scyArIDEpO1xuICAgICAgfSBlbHNlIGlmIChyb3dzICUgMiA9PT0gMSkge1xuICAgICAgICBhID0gZW1iZWQoYSwgcm93cyArIDEsIGNvbHMpO1xuICAgICAgICBiID0gZW1iZWQoYiwgcm93cyArIDEsIGNvbHMpO1xuICAgICAgfSBlbHNlIGlmIChjb2xzICUgMiA9PT0gMSkge1xuICAgICAgICBhID0gZW1iZWQoYSwgcm93cywgY29scyArIDEpO1xuICAgICAgICBiID0gZW1iZWQoYiwgcm93cywgY29scyArIDEpO1xuICAgICAgfVxuXG4gICAgICBsZXQgaGFsZlJvd3MgPSBwYXJzZUludChhLnJvd3MgLyAyLCAxMCk7XG4gICAgICBsZXQgaGFsZkNvbHMgPSBwYXJzZUludChhLmNvbHVtbnMgLyAyLCAxMCk7XG4gICAgICAvLyBTdWJkaXZpZGUgaW5wdXQgbWF0cmljZXMuXG4gICAgICBsZXQgYTExID0gYS5zdWJNYXRyaXgoMCwgaGFsZlJvd3MgLSAxLCAwLCBoYWxmQ29scyAtIDEpO1xuICAgICAgbGV0IGIxMSA9IGIuc3ViTWF0cml4KDAsIGhhbGZSb3dzIC0gMSwgMCwgaGFsZkNvbHMgLSAxKTtcblxuICAgICAgbGV0IGExMiA9IGEuc3ViTWF0cml4KDAsIGhhbGZSb3dzIC0gMSwgaGFsZkNvbHMsIGEuY29sdW1ucyAtIDEpO1xuICAgICAgbGV0IGIxMiA9IGIuc3ViTWF0cml4KDAsIGhhbGZSb3dzIC0gMSwgaGFsZkNvbHMsIGIuY29sdW1ucyAtIDEpO1xuXG4gICAgICBsZXQgYTIxID0gYS5zdWJNYXRyaXgoaGFsZlJvd3MsIGEucm93cyAtIDEsIDAsIGhhbGZDb2xzIC0gMSk7XG4gICAgICBsZXQgYjIxID0gYi5zdWJNYXRyaXgoaGFsZlJvd3MsIGIucm93cyAtIDEsIDAsIGhhbGZDb2xzIC0gMSk7XG5cbiAgICAgIGxldCBhMjIgPSBhLnN1Yk1hdHJpeChoYWxmUm93cywgYS5yb3dzIC0gMSwgaGFsZkNvbHMsIGEuY29sdW1ucyAtIDEpO1xuICAgICAgbGV0IGIyMiA9IGIuc3ViTWF0cml4KGhhbGZSb3dzLCBiLnJvd3MgLSAxLCBoYWxmQ29scywgYi5jb2x1bW5zIC0gMSk7XG5cbiAgICAgIC8vIENvbXB1dGUgaW50ZXJtZWRpYXRlIHZhbHVlcy5cbiAgICAgIGxldCBtMSA9IGJsb2NrTXVsdChcbiAgICAgICAgQWJzdHJhY3RNYXRyaXguYWRkKGExMSwgYTIyKSxcbiAgICAgICAgQWJzdHJhY3RNYXRyaXguYWRkKGIxMSwgYjIyKSxcbiAgICAgICAgaGFsZlJvd3MsXG4gICAgICAgIGhhbGZDb2xzLFxuICAgICAgKTtcbiAgICAgIGxldCBtMiA9IGJsb2NrTXVsdChBYnN0cmFjdE1hdHJpeC5hZGQoYTIxLCBhMjIpLCBiMTEsIGhhbGZSb3dzLCBoYWxmQ29scyk7XG4gICAgICBsZXQgbTMgPSBibG9ja011bHQoYTExLCBBYnN0cmFjdE1hdHJpeC5zdWIoYjEyLCBiMjIpLCBoYWxmUm93cywgaGFsZkNvbHMpO1xuICAgICAgbGV0IG00ID0gYmxvY2tNdWx0KGEyMiwgQWJzdHJhY3RNYXRyaXguc3ViKGIyMSwgYjExKSwgaGFsZlJvd3MsIGhhbGZDb2xzKTtcbiAgICAgIGxldCBtNSA9IGJsb2NrTXVsdChBYnN0cmFjdE1hdHJpeC5hZGQoYTExLCBhMTIpLCBiMjIsIGhhbGZSb3dzLCBoYWxmQ29scyk7XG4gICAgICBsZXQgbTYgPSBibG9ja011bHQoXG4gICAgICAgIEFic3RyYWN0TWF0cml4LnN1YihhMjEsIGExMSksXG4gICAgICAgIEFic3RyYWN0TWF0cml4LmFkZChiMTEsIGIxMiksXG4gICAgICAgIGhhbGZSb3dzLFxuICAgICAgICBoYWxmQ29scyxcbiAgICAgICk7XG4gICAgICBsZXQgbTcgPSBibG9ja011bHQoXG4gICAgICAgIEFic3RyYWN0TWF0cml4LnN1YihhMTIsIGEyMiksXG4gICAgICAgIEFic3RyYWN0TWF0cml4LmFkZChiMjEsIGIyMiksXG4gICAgICAgIGhhbGZSb3dzLFxuICAgICAgICBoYWxmQ29scyxcbiAgICAgICk7XG5cbiAgICAgIC8vIENvbWJpbmUgaW50ZXJtZWRpYXRlIHZhbHVlcyBpbnRvIHRoZSBvdXRwdXQuXG4gICAgICBsZXQgYzExID0gQWJzdHJhY3RNYXRyaXguYWRkKG0xLCBtNCk7XG4gICAgICBjMTEuc3ViKG01KTtcbiAgICAgIGMxMS5hZGQobTcpO1xuICAgICAgbGV0IGMxMiA9IEFic3RyYWN0TWF0cml4LmFkZChtMywgbTUpO1xuICAgICAgbGV0IGMyMSA9IEFic3RyYWN0TWF0cml4LmFkZChtMiwgbTQpO1xuICAgICAgbGV0IGMyMiA9IEFic3RyYWN0TWF0cml4LnN1YihtMSwgbTIpO1xuICAgICAgYzIyLmFkZChtMyk7XG4gICAgICBjMjIuYWRkKG02KTtcblxuICAgICAgLy8gQ3JvcCBvdXRwdXQgdG8gdGhlIGRlc2lyZWQgc2l6ZSAodW5kbyBkeW5hbWljIHBhZGRpbmcpLlxuICAgICAgbGV0IHJlc3VsdGF0ID0gQWJzdHJhY3RNYXRyaXguemVyb3MoMiAqIGMxMS5yb3dzLCAyICogYzExLmNvbHVtbnMpO1xuICAgICAgcmVzdWx0YXQgPSByZXN1bHRhdC5zZXRTdWJNYXRyaXgoYzExLCAwLCAwKTtcbiAgICAgIHJlc3VsdGF0ID0gcmVzdWx0YXQuc2V0U3ViTWF0cml4KGMxMiwgYzExLnJvd3MsIDApO1xuICAgICAgcmVzdWx0YXQgPSByZXN1bHRhdC5zZXRTdWJNYXRyaXgoYzIxLCAwLCBjMTEuY29sdW1ucyk7XG4gICAgICByZXN1bHRhdCA9IHJlc3VsdGF0LnNldFN1Yk1hdHJpeChjMjIsIGMxMS5yb3dzLCBjMTEuY29sdW1ucyk7XG4gICAgICByZXR1cm4gcmVzdWx0YXQuc3ViTWF0cml4KDAsIHJvd3MgLSAxLCAwLCBjb2xzIC0gMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJsb2NrTXVsdCh4LCB5LCByLCBjKTtcbiAgfVxuXG4gIHNjYWxlUm93cyhvcHRpb25zID0ge30pIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHsgbWluID0gMCwgbWF4ID0gMSB9ID0gb3B0aW9ucztcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShtaW4pKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdtaW4gbXVzdCBiZSBhIG51bWJlcicpO1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG1heCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ21heCBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gICAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Jyk7XG4gICAgbGV0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgodGhpcy5yb3dzLCB0aGlzLmNvbHVtbnMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGNvbnN0IHJvdyA9IHRoaXMuZ2V0Um93KGkpO1xuICAgICAgaWYgKHJvdy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc2NhbGUocm93LCB7IG1pbiwgbWF4LCBvdXRwdXQ6IHJvdyB9KTtcbiAgICAgIH1cbiAgICAgIG5ld01hdHJpeC5zZXRSb3coaSwgcm93KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld01hdHJpeDtcbiAgfVxuXG4gIHNjYWxlQ29sdW1ucyhvcHRpb25zID0ge30pIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHsgbWluID0gMCwgbWF4ID0gMSB9ID0gb3B0aW9ucztcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShtaW4pKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdtaW4gbXVzdCBiZSBhIG51bWJlcicpO1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG1heCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ21heCBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gICAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Jyk7XG4gICAgbGV0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgodGhpcy5yb3dzLCB0aGlzLmNvbHVtbnMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uKGkpO1xuICAgICAgaWYgKGNvbHVtbi5sZW5ndGgpIHtcbiAgICAgICAgcmVzY2FsZShjb2x1bW4sIHtcbiAgICAgICAgICBtaW46IG1pbixcbiAgICAgICAgICBtYXg6IG1heCxcbiAgICAgICAgICBvdXRwdXQ6IGNvbHVtbixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBuZXdNYXRyaXguc2V0Q29sdW1uKGksIGNvbHVtbik7XG4gICAgfVxuICAgIHJldHVybiBuZXdNYXRyaXg7XG4gIH1cblxuICBmbGlwUm93cygpIHtcbiAgICBjb25zdCBtaWRkbGUgPSBNYXRoLmNlaWwodGhpcy5jb2x1bW5zIC8gMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtaWRkbGU7IGorKykge1xuICAgICAgICBsZXQgZmlyc3QgPSB0aGlzLmdldChpLCBqKTtcbiAgICAgICAgbGV0IGxhc3QgPSB0aGlzLmdldChpLCB0aGlzLmNvbHVtbnMgLSAxIC0gaik7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIGxhc3QpO1xuICAgICAgICB0aGlzLnNldChpLCB0aGlzLmNvbHVtbnMgLSAxIC0gaiwgZmlyc3QpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZsaXBDb2x1bW5zKCkge1xuICAgIGNvbnN0IG1pZGRsZSA9IE1hdGguY2VpbCh0aGlzLnJvd3MgLyAyKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1pZGRsZTsgaSsrKSB7XG4gICAgICAgIGxldCBmaXJzdCA9IHRoaXMuZ2V0KGksIGopO1xuICAgICAgICBsZXQgbGFzdCA9IHRoaXMuZ2V0KHRoaXMucm93cyAtIDEgLSBpLCBqKTtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgbGFzdCk7XG4gICAgICAgIHRoaXMuc2V0KHRoaXMucm93cyAtIDEgLSBpLCBqLCBmaXJzdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAga3JvbmVja2VyUHJvZHVjdChvdGhlcikge1xuICAgIG90aGVyID0gTWF0cml4LmNoZWNrTWF0cml4KG90aGVyKTtcblxuICAgIGxldCBtID0gdGhpcy5yb3dzO1xuICAgIGxldCBuID0gdGhpcy5jb2x1bW5zO1xuICAgIGxldCBwID0gb3RoZXIucm93cztcbiAgICBsZXQgcSA9IG90aGVyLmNvbHVtbnM7XG5cbiAgICBsZXQgcmVzdWx0ID0gbmV3IE1hdHJpeChtICogcCwgbiAqIHEpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbTsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG47IGorKykge1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHA7IGsrKykge1xuICAgICAgICAgIGZvciAobGV0IGwgPSAwOyBsIDwgcTsgbCsrKSB7XG4gICAgICAgICAgICByZXN1bHQuc2V0KHAgKiBpICsgaywgcSAqIGogKyBsLCB0aGlzLmdldChpLCBqKSAqIG90aGVyLmdldChrLCBsKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBrcm9uZWNrZXJTdW0ob3RoZXIpIHtcbiAgICBvdGhlciA9IE1hdHJpeC5jaGVja01hdHJpeChvdGhlcik7XG4gICAgaWYgKCF0aGlzLmlzU3F1YXJlKCkgfHwgIW90aGVyLmlzU3F1YXJlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignS3JvbmVja2VyIFN1bSBuZWVkcyB0d28gU3F1YXJlIE1hdHJpY2VzJyk7XG4gICAgfVxuICAgIGxldCBtID0gdGhpcy5yb3dzO1xuICAgIGxldCBuID0gb3RoZXIucm93cztcbiAgICBsZXQgQXhJID0gdGhpcy5rcm9uZWNrZXJQcm9kdWN0KE1hdHJpeC5leWUobiwgbikpO1xuICAgIGxldCBJeEIgPSBNYXRyaXguZXllKG0sIG0pLmtyb25lY2tlclByb2R1Y3Qob3RoZXIpO1xuICAgIHJldHVybiBBeEkuYWRkKEl4Qik7XG4gIH1cblxuICB0cmFuc3Bvc2UoKSB7XG4gICAgbGV0IHJlc3VsdCA9IG5ldyBNYXRyaXgodGhpcy5jb2x1bW5zLCB0aGlzLnJvd3MpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgcmVzdWx0LnNldChqLCBpLCB0aGlzLmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzb3J0Um93cyhjb21wYXJlRnVuY3Rpb24gPSBjb21wYXJlTnVtYmVycykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIHRoaXMuc2V0Um93KGksIHRoaXMuZ2V0Um93KGkpLnNvcnQoY29tcGFyZUZ1bmN0aW9uKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc29ydENvbHVtbnMoY29tcGFyZUZ1bmN0aW9uID0gY29tcGFyZU51bWJlcnMpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sdW1uczsgaSsrKSB7XG4gICAgICB0aGlzLnNldENvbHVtbihpLCB0aGlzLmdldENvbHVtbihpKS5zb3J0KGNvbXBhcmVGdW5jdGlvbikpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN1Yk1hdHJpeChzdGFydFJvdywgZW5kUm93LCBzdGFydENvbHVtbiwgZW5kQ29sdW1uKSB7XG4gICAgY2hlY2tSYW5nZSh0aGlzLCBzdGFydFJvdywgZW5kUm93LCBzdGFydENvbHVtbiwgZW5kQ29sdW1uKTtcbiAgICBsZXQgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChcbiAgICAgIGVuZFJvdyAtIHN0YXJ0Um93ICsgMSxcbiAgICAgIGVuZENvbHVtbiAtIHN0YXJ0Q29sdW1uICsgMSxcbiAgICApO1xuICAgIGZvciAobGV0IGkgPSBzdGFydFJvdzsgaSA8PSBlbmRSb3c7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IHN0YXJ0Q29sdW1uOyBqIDw9IGVuZENvbHVtbjsgaisrKSB7XG4gICAgICAgIG5ld01hdHJpeC5zZXQoaSAtIHN0YXJ0Um93LCBqIC0gc3RhcnRDb2x1bW4sIHRoaXMuZ2V0KGksIGopKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld01hdHJpeDtcbiAgfVxuXG4gIHN1Yk1hdHJpeFJvdyhpbmRpY2VzLCBzdGFydENvbHVtbiwgZW5kQ29sdW1uKSB7XG4gICAgaWYgKHN0YXJ0Q29sdW1uID09PSB1bmRlZmluZWQpIHN0YXJ0Q29sdW1uID0gMDtcbiAgICBpZiAoZW5kQ29sdW1uID09PSB1bmRlZmluZWQpIGVuZENvbHVtbiA9IHRoaXMuY29sdW1ucyAtIDE7XG4gICAgaWYgKFxuICAgICAgc3RhcnRDb2x1bW4gPiBlbmRDb2x1bW4gfHxcbiAgICAgIHN0YXJ0Q29sdW1uIDwgMCB8fFxuICAgICAgc3RhcnRDb2x1bW4gPj0gdGhpcy5jb2x1bW5zIHx8XG4gICAgICBlbmRDb2x1bW4gPCAwIHx8XG4gICAgICBlbmRDb2x1bW4gPj0gdGhpcy5jb2x1bW5zXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQXJndW1lbnQgb3V0IG9mIHJhbmdlJyk7XG4gICAgfVxuXG4gICAgbGV0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgoaW5kaWNlcy5sZW5ndGgsIGVuZENvbHVtbiAtIHN0YXJ0Q29sdW1uICsgMSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbmRpY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gc3RhcnRDb2x1bW47IGogPD0gZW5kQ29sdW1uOyBqKyspIHtcbiAgICAgICAgaWYgKGluZGljZXNbaV0gPCAwIHx8IGluZGljZXNbaV0gPj0gdGhpcy5yb3dzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFJvdyBpbmRleCBvdXQgb2YgcmFuZ2U6ICR7aW5kaWNlc1tpXX1gKTtcbiAgICAgICAgfVxuICAgICAgICBuZXdNYXRyaXguc2V0KGksIGogLSBzdGFydENvbHVtbiwgdGhpcy5nZXQoaW5kaWNlc1tpXSwgaikpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3TWF0cml4O1xuICB9XG5cbiAgc3ViTWF0cml4Q29sdW1uKGluZGljZXMsIHN0YXJ0Um93LCBlbmRSb3cpIHtcbiAgICBpZiAoc3RhcnRSb3cgPT09IHVuZGVmaW5lZCkgc3RhcnRSb3cgPSAwO1xuICAgIGlmIChlbmRSb3cgPT09IHVuZGVmaW5lZCkgZW5kUm93ID0gdGhpcy5yb3dzIC0gMTtcbiAgICBpZiAoXG4gICAgICBzdGFydFJvdyA+IGVuZFJvdyB8fFxuICAgICAgc3RhcnRSb3cgPCAwIHx8XG4gICAgICBzdGFydFJvdyA+PSB0aGlzLnJvd3MgfHxcbiAgICAgIGVuZFJvdyA8IDAgfHxcbiAgICAgIGVuZFJvdyA+PSB0aGlzLnJvd3NcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdBcmd1bWVudCBvdXQgb2YgcmFuZ2UnKTtcbiAgICB9XG5cbiAgICBsZXQgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChlbmRSb3cgLSBzdGFydFJvdyArIDEsIGluZGljZXMubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluZGljZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSBzdGFydFJvdzsgaiA8PSBlbmRSb3c7IGorKykge1xuICAgICAgICBpZiAoaW5kaWNlc1tpXSA8IDAgfHwgaW5kaWNlc1tpXSA+PSB0aGlzLmNvbHVtbnMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgQ29sdW1uIGluZGV4IG91dCBvZiByYW5nZTogJHtpbmRpY2VzW2ldfWApO1xuICAgICAgICB9XG4gICAgICAgIG5ld01hdHJpeC5zZXQoaiAtIHN0YXJ0Um93LCBpLCB0aGlzLmdldChqLCBpbmRpY2VzW2ldKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdNYXRyaXg7XG4gIH1cblxuICBzZXRTdWJNYXRyaXgobWF0cml4LCBzdGFydFJvdywgc3RhcnRDb2x1bW4pIHtcbiAgICBtYXRyaXggPSBNYXRyaXguY2hlY2tNYXRyaXgobWF0cml4KTtcbiAgICBpZiAobWF0cml4LmlzRW1wdHkoKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGxldCBlbmRSb3cgPSBzdGFydFJvdyArIG1hdHJpeC5yb3dzIC0gMTtcbiAgICBsZXQgZW5kQ29sdW1uID0gc3RhcnRDb2x1bW4gKyBtYXRyaXguY29sdW1ucyAtIDE7XG4gICAgY2hlY2tSYW5nZSh0aGlzLCBzdGFydFJvdywgZW5kUm93LCBzdGFydENvbHVtbiwgZW5kQ29sdW1uKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbWF0cml4LmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChzdGFydFJvdyArIGksIHN0YXJ0Q29sdW1uICsgaiwgbWF0cml4LmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VsZWN0aW9uKHJvd0luZGljZXMsIGNvbHVtbkluZGljZXMpIHtcbiAgICBjaGVja1Jvd0luZGljZXModGhpcywgcm93SW5kaWNlcyk7XG4gICAgY2hlY2tDb2x1bW5JbmRpY2VzKHRoaXMsIGNvbHVtbkluZGljZXMpO1xuICAgIGxldCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KHJvd0luZGljZXMubGVuZ3RoLCBjb2x1bW5JbmRpY2VzLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dJbmRpY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgcm93SW5kZXggPSByb3dJbmRpY2VzW2ldO1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2x1bW5JbmRpY2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGxldCBjb2x1bW5JbmRleCA9IGNvbHVtbkluZGljZXNbal07XG4gICAgICAgIG5ld01hdHJpeC5zZXQoaSwgaiwgdGhpcy5nZXQocm93SW5kZXgsIGNvbHVtbkluZGV4KSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdNYXRyaXg7XG4gIH1cblxuICB0cmFjZSgpIHtcbiAgICBsZXQgbWluID0gTWF0aC5taW4odGhpcy5yb3dzLCB0aGlzLmNvbHVtbnMpO1xuICAgIGxldCB0cmFjZSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaW47IGkrKykge1xuICAgICAgdHJhY2UgKz0gdGhpcy5nZXQoaSwgaSk7XG4gICAgfVxuICAgIHJldHVybiB0cmFjZTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIGxldCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KHRoaXMucm93cywgdGhpcy5jb2x1bW5zKTtcbiAgICBmb3IgKGxldCByb3cgPSAwOyByb3cgPCB0aGlzLnJvd3M7IHJvdysrKSB7XG4gICAgICBmb3IgKGxldCBjb2x1bW4gPSAwOyBjb2x1bW4gPCB0aGlzLmNvbHVtbnM7IGNvbHVtbisrKSB7XG4gICAgICAgIG5ld01hdHJpeC5zZXQocm93LCBjb2x1bW4sIHRoaXMuZ2V0KHJvdywgY29sdW1uKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdNYXRyaXg7XG4gIH1cblxuICBzdW0oYnkpIHtcbiAgICBzd2l0Y2ggKGJ5KSB7XG4gICAgICBjYXNlICdyb3cnOlxuICAgICAgICByZXR1cm4gc3VtQnlSb3codGhpcyk7XG4gICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICByZXR1cm4gc3VtQnlDb2x1bW4odGhpcyk7XG4gICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgcmV0dXJuIHN1bUFsbCh0aGlzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBvcHRpb246ICR7Ynl9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvZHVjdChieSkge1xuICAgIHN3aXRjaCAoYnkpIHtcbiAgICAgIGNhc2UgJ3Jvdyc6XG4gICAgICAgIHJldHVybiBwcm9kdWN0QnlSb3codGhpcyk7XG4gICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICByZXR1cm4gcHJvZHVjdEJ5Q29sdW1uKHRoaXMpO1xuICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgIHJldHVybiBwcm9kdWN0QWxsKHRoaXMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHtieX1gKTtcbiAgICB9XG4gIH1cblxuICBtZWFuKGJ5KSB7XG4gICAgY29uc3Qgc3VtID0gdGhpcy5zdW0oYnkpO1xuICAgIHN3aXRjaCAoYnkpIHtcbiAgICAgIGNhc2UgJ3Jvdyc6IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgICAgIHN1bVtpXSAvPSB0aGlzLmNvbHVtbnM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1bTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2NvbHVtbic6IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbHVtbnM7IGkrKykge1xuICAgICAgICAgIHN1bVtpXSAvPSB0aGlzLnJvd3M7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1bTtcbiAgICAgIH1cbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICByZXR1cm4gc3VtIC8gdGhpcy5zaXplO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHtieX1gKTtcbiAgICB9XG4gIH1cblxuICB2YXJpYW5jZShieSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKHR5cGVvZiBieSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIG9wdGlvbnMgPSBieTtcbiAgICAgIGJ5ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHsgdW5iaWFzZWQgPSB0cnVlLCBtZWFuID0gdGhpcy5tZWFuKGJ5KSB9ID0gb3B0aW9ucztcbiAgICBpZiAodHlwZW9mIHVuYmlhc2VkICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3VuYmlhc2VkIG11c3QgYmUgYSBib29sZWFuJyk7XG4gICAgfVxuICAgIHN3aXRjaCAoYnkpIHtcbiAgICAgIGNhc2UgJ3Jvdyc6IHtcbiAgICAgICAgaWYgKCFpc0FueUFycmF5KG1lYW4pKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbWVhbiBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhcmlhbmNlQnlSb3codGhpcywgdW5iaWFzZWQsIG1lYW4pO1xuICAgICAgfVxuICAgICAgY2FzZSAnY29sdW1uJzoge1xuICAgICAgICBpZiAoIWlzQW55QXJyYXkobWVhbikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtZWFuIG11c3QgYmUgYW4gYXJyYXknKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFyaWFuY2VCeUNvbHVtbih0aGlzLCB1bmJpYXNlZCwgbWVhbik7XG4gICAgICB9XG4gICAgICBjYXNlIHVuZGVmaW5lZDoge1xuICAgICAgICBpZiAodHlwZW9mIG1lYW4gIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbWVhbiBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhcmlhbmNlQWxsKHRoaXMsIHVuYmlhc2VkLCBtZWFuKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBvcHRpb246ICR7Ynl9YCk7XG4gICAgfVxuICB9XG5cbiAgc3RhbmRhcmREZXZpYXRpb24oYnksIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIGJ5ID09PSAnb2JqZWN0Jykge1xuICAgICAgb3B0aW9ucyA9IGJ5O1xuICAgICAgYnkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHZhcmlhbmNlID0gdGhpcy52YXJpYW5jZShieSwgb3B0aW9ucyk7XG4gICAgaWYgKGJ5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBNYXRoLnNxcnQodmFyaWFuY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhcmlhbmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhcmlhbmNlW2ldID0gTWF0aC5zcXJ0KHZhcmlhbmNlW2ldKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YXJpYW5jZTtcbiAgICB9XG4gIH1cblxuICBjZW50ZXIoYnksIG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICh0eXBlb2YgYnkgPT09ICdvYmplY3QnKSB7XG4gICAgICBvcHRpb25zID0gYnk7XG4gICAgICBieSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICAgIH1cbiAgICBjb25zdCB7IGNlbnRlciA9IHRoaXMubWVhbihieSkgfSA9IG9wdGlvbnM7XG4gICAgc3dpdGNoIChieSkge1xuICAgICAgY2FzZSAncm93Jzoge1xuICAgICAgICBpZiAoIWlzQW55QXJyYXkoY2VudGVyKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NlbnRlciBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY2VudGVyQnlSb3codGhpcywgY2VudGVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICBjYXNlICdjb2x1bW4nOiB7XG4gICAgICAgIGlmICghaXNBbnlBcnJheShjZW50ZXIpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2VudGVyIG11c3QgYmUgYW4gYXJyYXknKTtcbiAgICAgICAgfVxuICAgICAgICBjZW50ZXJCeUNvbHVtbih0aGlzLCBjZW50ZXIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICAgIGNhc2UgdW5kZWZpbmVkOiB7XG4gICAgICAgIGlmICh0eXBlb2YgY2VudGVyICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NlbnRlciBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgY2VudGVyQWxsKHRoaXMsIGNlbnRlcik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9wdGlvbjogJHtieX1gKTtcbiAgICB9XG4gIH1cblxuICBzY2FsZShieSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKHR5cGVvZiBieSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIG9wdGlvbnMgPSBieTtcbiAgICAgIGJ5ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gICAgfVxuICAgIGxldCBzY2FsZSA9IG9wdGlvbnMuc2NhbGU7XG4gICAgc3dpdGNoIChieSkge1xuICAgICAgY2FzZSAncm93Jzoge1xuICAgICAgICBpZiAoc2NhbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNjYWxlID0gZ2V0U2NhbGVCeVJvdyh0aGlzKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNBbnlBcnJheShzY2FsZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzY2FsZSBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgc2NhbGVCeVJvdyh0aGlzLCBzY2FsZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgICAgY2FzZSAnY29sdW1uJzoge1xuICAgICAgICBpZiAoc2NhbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNjYWxlID0gZ2V0U2NhbGVCeUNvbHVtbih0aGlzKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNBbnlBcnJheShzY2FsZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzY2FsZSBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgc2NhbGVCeUNvbHVtbih0aGlzLCBzY2FsZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgICAgY2FzZSB1bmRlZmluZWQ6IHtcbiAgICAgICAgaWYgKHNjYWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzY2FsZSA9IGdldFNjYWxlQWxsKHRoaXMpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2FsZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzY2FsZSBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgc2NhbGVBbGwodGhpcywgc2NhbGUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBvcHRpb246ICR7Ynl9YCk7XG4gICAgfVxuICB9XG5cbiAgdG9TdHJpbmcob3B0aW9ucykge1xuICAgIHJldHVybiBpbnNwZWN0TWF0cml4V2l0aE9wdGlvbnModGhpcywgb3B0aW9ucyk7XG4gIH1cbn1cblxuQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmtsYXNzID0gJ01hdHJpeCc7XG5pZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlW1N5bWJvbC5mb3IoJ25vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tJyldID1cbiAgICBpbnNwZWN0TWF0cml4O1xufVxuXG5mdW5jdGlvbiBjb21wYXJlTnVtYmVycyhhLCBiKSB7XG4gIHJldHVybiBhIC0gYjtcbn1cblxuZnVuY3Rpb24gaXNBcnJheU9mTnVtYmVycyhhcnJheSkge1xuICByZXR1cm4gYXJyYXkuZXZlcnkoKGVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIGVsZW1lbnQgPT09ICdudW1iZXInO1xuICB9KTtcbn1cblxuLy8gU3lub255bXNcbkFic3RyYWN0TWF0cml4LnJhbmRvbSA9IEFic3RyYWN0TWF0cml4LnJhbmQ7XG5BYnN0cmFjdE1hdHJpeC5yYW5kb21JbnQgPSBBYnN0cmFjdE1hdHJpeC5yYW5kSW50O1xuQWJzdHJhY3RNYXRyaXguZGlhZ29uYWwgPSBBYnN0cmFjdE1hdHJpeC5kaWFnO1xuQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmRpYWdvbmFsID0gQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmRpYWc7XG5BYnN0cmFjdE1hdHJpeC5pZGVudGl0eSA9IEFic3RyYWN0TWF0cml4LmV5ZTtcbkFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5uZWdhdGUgPSBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubmVnO1xuQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnRlbnNvclByb2R1Y3QgPVxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUua3JvbmVja2VyUHJvZHVjdDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWF0cml4IGV4dGVuZHMgQWJzdHJhY3RNYXRyaXgge1xuICBjb25zdHJ1Y3RvcihuUm93cywgbkNvbHVtbnMpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmIChNYXRyaXguaXNNYXRyaXgoblJvd3MpKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc3RydWN0b3ItcmV0dXJuXG4gICAgICByZXR1cm4gblJvd3MuY2xvbmUoKTtcbiAgICB9IGVsc2UgaWYgKE51bWJlci5pc0ludGVnZXIoblJvd3MpICYmIG5Sb3dzID49IDApIHtcbiAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSBtYXRyaXhcbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIobkNvbHVtbnMpICYmIG5Db2x1bW5zID49IDApIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5kYXRhLnB1c2gobmV3IEZsb2F0NjRBcnJheShuQ29sdW1ucykpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCduQ29sdW1ucyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcicpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNBbnlBcnJheShuUm93cykpIHtcbiAgICAgIC8vIENvcHkgdGhlIHZhbHVlcyBmcm9tIHRoZSAyRCBhcnJheVxuICAgICAgY29uc3QgYXJyYXlEYXRhID0gblJvd3M7XG4gICAgICBuUm93cyA9IGFycmF5RGF0YS5sZW5ndGg7XG4gICAgICBuQ29sdW1ucyA9IG5Sb3dzID8gYXJyYXlEYXRhWzBdLmxlbmd0aCA6IDA7XG4gICAgICBpZiAodHlwZW9mIG5Db2x1bW5zICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICdEYXRhIG11c3QgYmUgYSAyRCBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBlbGVtZW50JyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgIGlmIChhcnJheURhdGFbaV0ubGVuZ3RoICE9PSBuQ29sdW1ucykge1xuICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmNvbnNpc3RlbnQgYXJyYXkgZGltZW5zaW9ucycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNBcnJheU9mTnVtYmVycyhhcnJheURhdGFbaV0pKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW5wdXQgZGF0YSBjb250YWlucyBub24tbnVtZXJpYyB2YWx1ZXMnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRhdGEucHVzaChGbG9hdDY0QXJyYXkuZnJvbShhcnJheURhdGFbaV0pKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ0ZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIgb3IgYW4gYXJyYXknLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yb3dzID0gblJvd3M7XG4gICAgdGhpcy5jb2x1bW5zID0gbkNvbHVtbnM7XG4gIH1cblxuICBzZXQocm93SW5kZXgsIGNvbHVtbkluZGV4LCB2YWx1ZSkge1xuICAgIHRoaXMuZGF0YVtyb3dJbmRleF1bY29sdW1uSW5kZXhdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQocm93SW5kZXgsIGNvbHVtbkluZGV4KSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVtyb3dJbmRleF1bY29sdW1uSW5kZXhdO1xuICB9XG5cbiAgcmVtb3ZlUm93KGluZGV4KSB7XG4gICAgY2hlY2tSb3dJbmRleCh0aGlzLCBpbmRleCk7XG4gICAgdGhpcy5kYXRhLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5yb3dzIC09IDE7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRSb3coaW5kZXgsIGFycmF5KSB7XG4gICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGFycmF5ID0gaW5kZXg7XG4gICAgICBpbmRleCA9IHRoaXMucm93cztcbiAgICB9XG4gICAgY2hlY2tSb3dJbmRleCh0aGlzLCBpbmRleCwgdHJ1ZSk7XG4gICAgYXJyYXkgPSBGbG9hdDY0QXJyYXkuZnJvbShjaGVja1Jvd1ZlY3Rvcih0aGlzLCBhcnJheSkpO1xuICAgIHRoaXMuZGF0YS5zcGxpY2UoaW5kZXgsIDAsIGFycmF5KTtcbiAgICB0aGlzLnJvd3MgKz0gMTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlbW92ZUNvbHVtbihpbmRleCkge1xuICAgIGNoZWNrQ29sdW1uSW5kZXgodGhpcywgaW5kZXgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGNvbnN0IG5ld1JvdyA9IG5ldyBGbG9hdDY0QXJyYXkodGhpcy5jb2x1bW5zIC0gMSk7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGluZGV4OyBqKyspIHtcbiAgICAgICAgbmV3Um93W2pdID0gdGhpcy5kYXRhW2ldW2pdO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgaiA9IGluZGV4ICsgMTsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIG5ld1Jvd1tqIC0gMV0gPSB0aGlzLmRhdGFbaV1bal07XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGFbaV0gPSBuZXdSb3c7XG4gICAgfVxuICAgIHRoaXMuY29sdW1ucyAtPSAxO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWRkQ29sdW1uKGluZGV4LCBhcnJheSkge1xuICAgIGlmICh0eXBlb2YgYXJyYXkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBhcnJheSA9IGluZGV4O1xuICAgICAgaW5kZXggPSB0aGlzLmNvbHVtbnM7XG4gICAgfVxuICAgIGNoZWNrQ29sdW1uSW5kZXgodGhpcywgaW5kZXgsIHRydWUpO1xuICAgIGFycmF5ID0gY2hlY2tDb2x1bW5WZWN0b3IodGhpcywgYXJyYXkpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGNvbnN0IG5ld1JvdyA9IG5ldyBGbG9hdDY0QXJyYXkodGhpcy5jb2x1bW5zICsgMSk7XG4gICAgICBsZXQgaiA9IDA7XG4gICAgICBmb3IgKDsgaiA8IGluZGV4OyBqKyspIHtcbiAgICAgICAgbmV3Um93W2pdID0gdGhpcy5kYXRhW2ldW2pdO1xuICAgICAgfVxuICAgICAgbmV3Um93W2orK10gPSBhcnJheVtpXTtcbiAgICAgIGZvciAoOyBqIDwgdGhpcy5jb2x1bW5zICsgMTsgaisrKSB7XG4gICAgICAgIG5ld1Jvd1tqXSA9IHRoaXMuZGF0YVtpXVtqIC0gMV07XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGFbaV0gPSBuZXdSb3c7XG4gICAgfVxuICAgIHRoaXMuY29sdW1ucyArPSAxO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG5cbmluc3RhbGxNYXRoT3BlcmF0aW9ucyhBYnN0cmFjdE1hdHJpeCwgTWF0cml4KTtcbiIsImltcG9ydCB7IG5ld0FycmF5IH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIHN1bUJ5Um93KG1hdHJpeCkge1xuICBsZXQgc3VtID0gbmV3QXJyYXkobWF0cml4LnJvd3MpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyArK2kpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1hdHJpeC5jb2x1bW5zOyArK2opIHtcbiAgICAgIHN1bVtpXSArPSBtYXRyaXguZ2V0KGksIGopO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3VtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VtQnlDb2x1bW4obWF0cml4KSB7XG4gIGxldCBzdW0gPSBuZXdBcnJheShtYXRyaXguY29sdW1ucyk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0cml4LnJvd3M7ICsraSkge1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbWF0cml4LmNvbHVtbnM7ICsraikge1xuICAgICAgc3VtW2pdICs9IG1hdHJpeC5nZXQoaSwgaik7XG4gICAgfVxuICB9XG4gIHJldHVybiBzdW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdW1BbGwobWF0cml4KSB7XG4gIGxldCB2ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXRyaXgucm93czsgaSsrKSB7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBtYXRyaXguY29sdW1uczsgaisrKSB7XG4gICAgICB2ICs9IG1hdHJpeC5nZXQoaSwgaik7XG4gICAgfVxuICB9XG4gIHJldHVybiB2O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvZHVjdEJ5Um93KG1hdHJpeCkge1xuICBsZXQgc3VtID0gbmV3QXJyYXkobWF0cml4LnJvd3MsIDEpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyArK2kpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1hdHJpeC5jb2x1bW5zOyArK2opIHtcbiAgICAgIHN1bVtpXSAqPSBtYXRyaXguZ2V0KGksIGopO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3VtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvZHVjdEJ5Q29sdW1uKG1hdHJpeCkge1xuICBsZXQgc3VtID0gbmV3QXJyYXkobWF0cml4LmNvbHVtbnMsIDEpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyArK2kpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1hdHJpeC5jb2x1bW5zOyArK2opIHtcbiAgICAgIHN1bVtqXSAqPSBtYXRyaXguZ2V0KGksIGopO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3VtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvZHVjdEFsbChtYXRyaXgpIHtcbiAgbGV0IHYgPSAxO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyBpKyspIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1hdHJpeC5jb2x1bW5zOyBqKyspIHtcbiAgICAgIHYgKj0gbWF0cml4LmdldChpLCBqKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYW5jZUJ5Um93KG1hdHJpeCwgdW5iaWFzZWQsIG1lYW4pIHtcbiAgY29uc3Qgcm93cyA9IG1hdHJpeC5yb3dzO1xuICBjb25zdCBjb2xzID0gbWF0cml4LmNvbHVtbnM7XG4gIGNvbnN0IHZhcmlhbmNlID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHtcbiAgICBsZXQgc3VtMSA9IDA7XG4gICAgbGV0IHN1bTIgPSAwO1xuICAgIGxldCB4ID0gMDtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbHM7IGorKykge1xuICAgICAgeCA9IG1hdHJpeC5nZXQoaSwgaikgLSBtZWFuW2ldO1xuICAgICAgc3VtMSArPSB4O1xuICAgICAgc3VtMiArPSB4ICogeDtcbiAgICB9XG4gICAgaWYgKHVuYmlhc2VkKSB7XG4gICAgICB2YXJpYW5jZS5wdXNoKChzdW0yIC0gKHN1bTEgKiBzdW0xKSAvIGNvbHMpIC8gKGNvbHMgLSAxKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhcmlhbmNlLnB1c2goKHN1bTIgLSAoc3VtMSAqIHN1bTEpIC8gY29scykgLyBjb2xzKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHZhcmlhbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFuY2VCeUNvbHVtbihtYXRyaXgsIHVuYmlhc2VkLCBtZWFuKSB7XG4gIGNvbnN0IHJvd3MgPSBtYXRyaXgucm93cztcbiAgY29uc3QgY29scyA9IG1hdHJpeC5jb2x1bW5zO1xuICBjb25zdCB2YXJpYW5jZSA9IFtdO1xuXG4gIGZvciAobGV0IGogPSAwOyBqIDwgY29sczsgaisrKSB7XG4gICAgbGV0IHN1bTEgPSAwO1xuICAgIGxldCBzdW0yID0gMDtcbiAgICBsZXQgeCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHtcbiAgICAgIHggPSBtYXRyaXguZ2V0KGksIGopIC0gbWVhbltqXTtcbiAgICAgIHN1bTEgKz0geDtcbiAgICAgIHN1bTIgKz0geCAqIHg7XG4gICAgfVxuICAgIGlmICh1bmJpYXNlZCkge1xuICAgICAgdmFyaWFuY2UucHVzaCgoc3VtMiAtIChzdW0xICogc3VtMSkgLyByb3dzKSAvIChyb3dzIC0gMSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXJpYW5jZS5wdXNoKChzdW0yIC0gKHN1bTEgKiBzdW0xKSAvIHJvd3MpIC8gcm93cyk7XG4gICAgfVxuICB9XG4gIHJldHVybiB2YXJpYW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhbmNlQWxsKG1hdHJpeCwgdW5iaWFzZWQsIG1lYW4pIHtcbiAgY29uc3Qgcm93cyA9IG1hdHJpeC5yb3dzO1xuICBjb25zdCBjb2xzID0gbWF0cml4LmNvbHVtbnM7XG4gIGNvbnN0IHNpemUgPSByb3dzICogY29scztcblxuICBsZXQgc3VtMSA9IDA7XG4gIGxldCBzdW0yID0gMDtcbiAgbGV0IHggPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3M7IGkrKykge1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgY29sczsgaisrKSB7XG4gICAgICB4ID0gbWF0cml4LmdldChpLCBqKSAtIG1lYW47XG4gICAgICBzdW0xICs9IHg7XG4gICAgICBzdW0yICs9IHggKiB4O1xuICAgIH1cbiAgfVxuICBpZiAodW5iaWFzZWQpIHtcbiAgICByZXR1cm4gKHN1bTIgLSAoc3VtMSAqIHN1bTEpIC8gc2l6ZSkgLyAoc2l6ZSAtIDEpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoc3VtMiAtIChzdW0xICogc3VtMSkgLyBzaXplKSAvIHNpemU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNlbnRlckJ5Um93KG1hdHJpeCwgbWVhbikge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyBpKyspIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1hdHJpeC5jb2x1bW5zOyBqKyspIHtcbiAgICAgIG1hdHJpeC5zZXQoaSwgaiwgbWF0cml4LmdldChpLCBqKSAtIG1lYW5baV0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2VudGVyQnlDb2x1bW4obWF0cml4LCBtZWFuKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0cml4LnJvd3M7IGkrKykge1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbWF0cml4LmNvbHVtbnM7IGorKykge1xuICAgICAgbWF0cml4LnNldChpLCBqLCBtYXRyaXguZ2V0KGksIGopIC0gbWVhbltqXSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjZW50ZXJBbGwobWF0cml4LCBtZWFuKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0cml4LnJvd3M7IGkrKykge1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbWF0cml4LmNvbHVtbnM7IGorKykge1xuICAgICAgbWF0cml4LnNldChpLCBqLCBtYXRyaXguZ2V0KGksIGopIC0gbWVhbik7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2FsZUJ5Um93KG1hdHJpeCkge1xuICBjb25zdCBzY2FsZSA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyBpKyspIHtcbiAgICBsZXQgc3VtID0gMDtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1hdHJpeC5jb2x1bW5zOyBqKyspIHtcbiAgICAgIHN1bSArPSBNYXRoLnBvdyhtYXRyaXguZ2V0KGksIGopLCAyKSAvIChtYXRyaXguY29sdW1ucyAtIDEpO1xuICAgIH1cbiAgICBzY2FsZS5wdXNoKE1hdGguc3FydChzdW0pKTtcbiAgfVxuICByZXR1cm4gc2NhbGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2FsZUJ5Um93KG1hdHJpeCwgc2NhbGUpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXRyaXgucm93czsgaSsrKSB7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBtYXRyaXguY29sdW1uczsgaisrKSB7XG4gICAgICBtYXRyaXguc2V0KGksIGosIG1hdHJpeC5nZXQoaSwgaikgLyBzY2FsZVtpXSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2FsZUJ5Q29sdW1uKG1hdHJpeCkge1xuICBjb25zdCBzY2FsZSA9IFtdO1xuICBmb3IgKGxldCBqID0gMDsgaiA8IG1hdHJpeC5jb2x1bW5zOyBqKyspIHtcbiAgICBsZXQgc3VtID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyBpKyspIHtcbiAgICAgIHN1bSArPSBNYXRoLnBvdyhtYXRyaXguZ2V0KGksIGopLCAyKSAvIChtYXRyaXgucm93cyAtIDEpO1xuICAgIH1cbiAgICBzY2FsZS5wdXNoKE1hdGguc3FydChzdW0pKTtcbiAgfVxuICByZXR1cm4gc2NhbGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2FsZUJ5Q29sdW1uKG1hdHJpeCwgc2NhbGUpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXRyaXgucm93czsgaSsrKSB7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBtYXRyaXguY29sdW1uczsgaisrKSB7XG4gICAgICBtYXRyaXguc2V0KGksIGosIG1hdHJpeC5nZXQoaSwgaikgLyBzY2FsZVtqXSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2FsZUFsbChtYXRyaXgpIHtcbiAgY29uc3QgZGl2aWRlciA9IG1hdHJpeC5zaXplIC0gMTtcbiAgbGV0IHN1bSA9IDA7XG4gIGZvciAobGV0IGogPSAwOyBqIDwgbWF0cml4LmNvbHVtbnM7IGorKykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0cml4LnJvd3M7IGkrKykge1xuICAgICAgc3VtICs9IE1hdGgucG93KG1hdHJpeC5nZXQoaSwgaiksIDIpIC8gZGl2aWRlcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NhbGVBbGwobWF0cml4LCBzY2FsZSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdHJpeC5yb3dzOyBpKyspIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1hdHJpeC5jb2x1bW5zOyBqKyspIHtcbiAgICAgIG1hdHJpeC5zZXQoaSwgaiwgbWF0cml4LmdldChpLCBqKSAvIHNjYWxlKTtcbiAgICB9XG4gIH1cbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsTWF0aE9wZXJhdGlvbnMoQWJzdHJhY3RNYXRyaXgsIE1hdHJpeCkge1xuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gYWRkKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiB0aGlzLmFkZFModmFsdWUpO1xuICAgIHJldHVybiB0aGlzLmFkZE0odmFsdWUpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5hZGRTID0gZnVuY3Rpb24gYWRkUyh2YWx1ZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgKyB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5hZGRNID0gZnVuY3Rpb24gYWRkTShtYXRyaXgpIHtcbiAgICBtYXRyaXggPSBNYXRyaXguY2hlY2tNYXRyaXgobWF0cml4KTtcbiAgICBpZiAodGhpcy5yb3dzICE9PSBtYXRyaXgucm93cyB8fFxuICAgICAgdGhpcy5jb2x1bW5zICE9PSBtYXRyaXguY29sdW1ucykge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ01hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCcpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIHRoaXMuZ2V0KGksIGopICsgbWF0cml4LmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LmFkZCA9IGZ1bmN0aW9uIGFkZChtYXRyaXgsIHZhbHVlKSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguYWRkKHZhbHVlKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuc3ViID0gZnVuY3Rpb24gc3ViKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiB0aGlzLnN1YlModmFsdWUpO1xuICAgIHJldHVybiB0aGlzLnN1Yk0odmFsdWUpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5zdWJTID0gZnVuY3Rpb24gc3ViUyh2YWx1ZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgLSB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5zdWJNID0gZnVuY3Rpb24gc3ViTShtYXRyaXgpIHtcbiAgICBtYXRyaXggPSBNYXRyaXguY2hlY2tNYXRyaXgobWF0cml4KTtcbiAgICBpZiAodGhpcy5yb3dzICE9PSBtYXRyaXgucm93cyB8fFxuICAgICAgdGhpcy5jb2x1bW5zICE9PSBtYXRyaXguY29sdW1ucykge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ01hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCcpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIHRoaXMuZ2V0KGksIGopIC0gbWF0cml4LmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnN1YiA9IGZ1bmN0aW9uIHN1YihtYXRyaXgsIHZhbHVlKSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguc3ViKHZhbHVlKTtcbiAgfTtcbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnN1YnRyYWN0ID0gQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnN1YjtcbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnN1YnRyYWN0UyA9IEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5zdWJTO1xuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuc3VidHJhY3RNID0gQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnN1Yk07XG4gIEFic3RyYWN0TWF0cml4LnN1YnRyYWN0ID0gQWJzdHJhY3RNYXRyaXguc3ViO1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiBtdWwodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykgcmV0dXJuIHRoaXMubXVsUyh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXMubXVsTSh2YWx1ZSk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm11bFMgPSBmdW5jdGlvbiBtdWxTKHZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCB0aGlzLmdldChpLCBqKSAqIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm11bE0gPSBmdW5jdGlvbiBtdWxNKG1hdHJpeCkge1xuICAgIG1hdHJpeCA9IE1hdHJpeC5jaGVja01hdHJpeChtYXRyaXgpO1xuICAgIGlmICh0aGlzLnJvd3MgIT09IG1hdHJpeC5yb3dzIHx8XG4gICAgICB0aGlzLmNvbHVtbnMgIT09IG1hdHJpeC5jb2x1bW5zKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsJyk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgKiBtYXRyaXguZ2V0KGksIGopKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgubXVsID0gZnVuY3Rpb24gbXVsKG1hdHJpeCwgdmFsdWUpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5tdWwodmFsdWUpO1xuICB9O1xuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubXVsdGlwbHkgPSBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubXVsO1xuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubXVsdGlwbHlTID0gQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm11bFM7XG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5tdWx0aXBseU0gPSBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubXVsTTtcbiAgQWJzdHJhY3RNYXRyaXgubXVsdGlwbHkgPSBBYnN0cmFjdE1hdHJpeC5tdWw7XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmRpdiA9IGZ1bmN0aW9uIGRpdih2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSByZXR1cm4gdGhpcy5kaXZTKHZhbHVlKTtcbiAgICByZXR1cm4gdGhpcy5kaXZNKHZhbHVlKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuZGl2UyA9IGZ1bmN0aW9uIGRpdlModmFsdWUpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIHRoaXMuZ2V0KGksIGopIC8gdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuZGl2TSA9IGZ1bmN0aW9uIGRpdk0obWF0cml4KSB7XG4gICAgbWF0cml4ID0gTWF0cml4LmNoZWNrTWF0cml4KG1hdHJpeCk7XG4gICAgaWYgKHRoaXMucm93cyAhPT0gbWF0cml4LnJvd3MgfHxcbiAgICAgIHRoaXMuY29sdW1ucyAhPT0gbWF0cml4LmNvbHVtbnMpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwnKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCB0aGlzLmdldChpLCBqKSAvIG1hdHJpeC5nZXQoaSwgaikpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5kaXYgPSBmdW5jdGlvbiBkaXYobWF0cml4LCB2YWx1ZSkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LmRpdih2YWx1ZSk7XG4gIH07XG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5kaXZpZGUgPSBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuZGl2O1xuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuZGl2aWRlUyA9IEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5kaXZTO1xuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuZGl2aWRlTSA9IEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5kaXZNO1xuICBBYnN0cmFjdE1hdHJpeC5kaXZpZGUgPSBBYnN0cmFjdE1hdHJpeC5kaXY7XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm1vZCA9IGZ1bmN0aW9uIG1vZCh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSByZXR1cm4gdGhpcy5tb2RTKHZhbHVlKTtcbiAgICByZXR1cm4gdGhpcy5tb2RNKHZhbHVlKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubW9kUyA9IGZ1bmN0aW9uIG1vZFModmFsdWUpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIHRoaXMuZ2V0KGksIGopICUgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubW9kTSA9IGZ1bmN0aW9uIG1vZE0obWF0cml4KSB7XG4gICAgbWF0cml4ID0gTWF0cml4LmNoZWNrTWF0cml4KG1hdHJpeCk7XG4gICAgaWYgKHRoaXMucm93cyAhPT0gbWF0cml4LnJvd3MgfHxcbiAgICAgIHRoaXMuY29sdW1ucyAhPT0gbWF0cml4LmNvbHVtbnMpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwnKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCB0aGlzLmdldChpLCBqKSAlIG1hdHJpeC5nZXQoaSwgaikpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5tb2QgPSBmdW5jdGlvbiBtb2QobWF0cml4LCB2YWx1ZSkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4Lm1vZCh2YWx1ZSk7XG4gIH07XG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5tb2R1bHVzID0gQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm1vZDtcbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm1vZHVsdXNTID0gQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm1vZFM7XG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5tb2R1bHVzTSA9IEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5tb2RNO1xuICBBYnN0cmFjdE1hdHJpeC5tb2R1bHVzID0gQWJzdHJhY3RNYXRyaXgubW9kO1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbiBhbmQodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykgcmV0dXJuIHRoaXMuYW5kUyh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXMuYW5kTSh2YWx1ZSk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmFuZFMgPSBmdW5jdGlvbiBhbmRTKHZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCB0aGlzLmdldChpLCBqKSAmIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmFuZE0gPSBmdW5jdGlvbiBhbmRNKG1hdHJpeCkge1xuICAgIG1hdHJpeCA9IE1hdHJpeC5jaGVja01hdHJpeChtYXRyaXgpO1xuICAgIGlmICh0aGlzLnJvd3MgIT09IG1hdHJpeC5yb3dzIHx8XG4gICAgICB0aGlzLmNvbHVtbnMgIT09IG1hdHJpeC5jb2x1bW5zKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsJyk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgJiBtYXRyaXguZ2V0KGksIGopKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXguYW5kID0gZnVuY3Rpb24gYW5kKG1hdHJpeCwgdmFsdWUpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5hbmQodmFsdWUpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5vciA9IGZ1bmN0aW9uIG9yKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiB0aGlzLm9yUyh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXMub3JNKHZhbHVlKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUub3JTID0gZnVuY3Rpb24gb3JTKHZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCB0aGlzLmdldChpLCBqKSB8IHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm9yTSA9IGZ1bmN0aW9uIG9yTShtYXRyaXgpIHtcbiAgICBtYXRyaXggPSBNYXRyaXguY2hlY2tNYXRyaXgobWF0cml4KTtcbiAgICBpZiAodGhpcy5yb3dzICE9PSBtYXRyaXgucm93cyB8fFxuICAgICAgdGhpcy5jb2x1bW5zICE9PSBtYXRyaXguY29sdW1ucykge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ01hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCcpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIHRoaXMuZ2V0KGksIGopIHwgbWF0cml4LmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4Lm9yID0gZnVuY3Rpb24gb3IobWF0cml4LCB2YWx1ZSkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4Lm9yKHZhbHVlKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUueG9yID0gZnVuY3Rpb24geG9yKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiB0aGlzLnhvclModmFsdWUpO1xuICAgIHJldHVybiB0aGlzLnhvck0odmFsdWUpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS54b3JTID0gZnVuY3Rpb24geG9yUyh2YWx1ZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgXiB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS54b3JNID0gZnVuY3Rpb24geG9yTShtYXRyaXgpIHtcbiAgICBtYXRyaXggPSBNYXRyaXguY2hlY2tNYXRyaXgobWF0cml4KTtcbiAgICBpZiAodGhpcy5yb3dzICE9PSBtYXRyaXgucm93cyB8fFxuICAgICAgdGhpcy5jb2x1bW5zICE9PSBtYXRyaXguY29sdW1ucykge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ01hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCcpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIHRoaXMuZ2V0KGksIGopIF4gbWF0cml4LmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnhvciA9IGZ1bmN0aW9uIHhvcihtYXRyaXgsIHZhbHVlKSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXgueG9yKHZhbHVlKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubGVmdFNoaWZ0ID0gZnVuY3Rpb24gbGVmdFNoaWZ0KHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiB0aGlzLmxlZnRTaGlmdFModmFsdWUpO1xuICAgIHJldHVybiB0aGlzLmxlZnRTaGlmdE0odmFsdWUpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5sZWZ0U2hpZnRTID0gZnVuY3Rpb24gbGVmdFNoaWZ0Uyh2YWx1ZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgPDwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubGVmdFNoaWZ0TSA9IGZ1bmN0aW9uIGxlZnRTaGlmdE0obWF0cml4KSB7XG4gICAgbWF0cml4ID0gTWF0cml4LmNoZWNrTWF0cml4KG1hdHJpeCk7XG4gICAgaWYgKHRoaXMucm93cyAhPT0gbWF0cml4LnJvd3MgfHxcbiAgICAgIHRoaXMuY29sdW1ucyAhPT0gbWF0cml4LmNvbHVtbnMpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwnKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCB0aGlzLmdldChpLCBqKSA8PCBtYXRyaXguZ2V0KGksIGopKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgubGVmdFNoaWZ0ID0gZnVuY3Rpb24gbGVmdFNoaWZ0KG1hdHJpeCwgdmFsdWUpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5sZWZ0U2hpZnQodmFsdWUpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0ID0gZnVuY3Rpb24gc2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdCh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSByZXR1cm4gdGhpcy5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0Uyh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXMuc2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdE0odmFsdWUpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0UyA9IGZ1bmN0aW9uIHNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnRTKHZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCB0aGlzLmdldChpLCBqKSA+PiB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0TSA9IGZ1bmN0aW9uIHNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnRNKG1hdHJpeCkge1xuICAgIG1hdHJpeCA9IE1hdHJpeC5jaGVja01hdHJpeChtYXRyaXgpO1xuICAgIGlmICh0aGlzLnJvd3MgIT09IG1hdHJpeC5yb3dzIHx8XG4gICAgICB0aGlzLmNvbHVtbnMgIT09IG1hdHJpeC5jb2x1bW5zKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsJyk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgPj4gbWF0cml4LmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnQgPSBmdW5jdGlvbiBzaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0KG1hdHJpeCwgdmFsdWUpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0KHZhbHVlKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUucmlnaHRTaGlmdCA9IGZ1bmN0aW9uIHJpZ2h0U2hpZnQodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykgcmV0dXJuIHRoaXMucmlnaHRTaGlmdFModmFsdWUpO1xuICAgIHJldHVybiB0aGlzLnJpZ2h0U2hpZnRNKHZhbHVlKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUucmlnaHRTaGlmdFMgPSBmdW5jdGlvbiByaWdodFNoaWZ0Uyh2YWx1ZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgdGhpcy5nZXQoaSwgaikgPj4+IHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnJpZ2h0U2hpZnRNID0gZnVuY3Rpb24gcmlnaHRTaGlmdE0obWF0cml4KSB7XG4gICAgbWF0cml4ID0gTWF0cml4LmNoZWNrTWF0cml4KG1hdHJpeCk7XG4gICAgaWYgKHRoaXMucm93cyAhPT0gbWF0cml4LnJvd3MgfHxcbiAgICAgIHRoaXMuY29sdW1ucyAhPT0gbWF0cml4LmNvbHVtbnMpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwnKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCB0aGlzLmdldChpLCBqKSA+Pj4gbWF0cml4LmdldChpLCBqKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnJpZ2h0U2hpZnQgPSBmdW5jdGlvbiByaWdodFNoaWZ0KG1hdHJpeCwgdmFsdWUpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5yaWdodFNoaWZ0KHZhbHVlKTtcbiAgfTtcbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnplcm9GaWxsUmlnaHRTaGlmdCA9IEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5yaWdodFNoaWZ0O1xuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuemVyb0ZpbGxSaWdodFNoaWZ0UyA9IEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5yaWdodFNoaWZ0UztcbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnplcm9GaWxsUmlnaHRTaGlmdE0gPSBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUucmlnaHRTaGlmdE07XG4gIEFic3RyYWN0TWF0cml4Lnplcm9GaWxsUmlnaHRTaGlmdCA9IEFic3RyYWN0TWF0cml4LnJpZ2h0U2hpZnQ7XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLm5vdCA9IGZ1bmN0aW9uIG5vdCgpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIH4odGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgubm90ID0gZnVuY3Rpb24gbm90KG1hdHJpeCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4Lm5vdCgpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5hYnMgPSBmdW5jdGlvbiBhYnMoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLmFicyh0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5hYnMgPSBmdW5jdGlvbiBhYnMobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguYWJzKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmFjb3MgPSBmdW5jdGlvbiBhY29zKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgTWF0aC5hY29zKHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LmFjb3MgPSBmdW5jdGlvbiBhY29zKG1hdHJpeCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LmFjb3MoKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuYWNvc2ggPSBmdW5jdGlvbiBhY29zaCgpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGguYWNvc2godGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXguYWNvc2ggPSBmdW5jdGlvbiBhY29zaChtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5hY29zaCgpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5hc2luID0gZnVuY3Rpb24gYXNpbigpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGguYXNpbih0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5hc2luID0gZnVuY3Rpb24gYXNpbihtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5hc2luKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmFzaW5oID0gZnVuY3Rpb24gYXNpbmgoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLmFzaW5oKHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LmFzaW5oID0gZnVuY3Rpb24gYXNpbmgobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguYXNpbmgoKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuYXRhbiA9IGZ1bmN0aW9uIGF0YW4oKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLmF0YW4odGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXguYXRhbiA9IGZ1bmN0aW9uIGF0YW4obWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguYXRhbigpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5hdGFuaCA9IGZ1bmN0aW9uIGF0YW5oKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgTWF0aC5hdGFuaCh0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5hdGFuaCA9IGZ1bmN0aW9uIGF0YW5oKG1hdHJpeCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LmF0YW5oKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmNicnQgPSBmdW5jdGlvbiBjYnJ0KCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgTWF0aC5jYnJ0KHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LmNicnQgPSBmdW5jdGlvbiBjYnJ0KG1hdHJpeCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LmNicnQoKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuY2VpbCA9IGZ1bmN0aW9uIGNlaWwoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLmNlaWwodGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXguY2VpbCA9IGZ1bmN0aW9uIGNlaWwobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguY2VpbCgpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5jbHozMiA9IGZ1bmN0aW9uIGNsejMyKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgTWF0aC5jbHozMih0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5jbHozMiA9IGZ1bmN0aW9uIGNsejMyKG1hdHJpeCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LmNsejMyKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmNvcyA9IGZ1bmN0aW9uIGNvcygpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGguY29zKHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LmNvcyA9IGZ1bmN0aW9uIGNvcyhtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5jb3MoKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuY29zaCA9IGZ1bmN0aW9uIGNvc2goKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLmNvc2godGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXguY29zaCA9IGZ1bmN0aW9uIGNvc2gobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguY29zaCgpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5leHAgPSBmdW5jdGlvbiBleHAoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLmV4cCh0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5leHAgPSBmdW5jdGlvbiBleHAobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguZXhwKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmV4cG0xID0gZnVuY3Rpb24gZXhwbTEoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLmV4cG0xKHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LmV4cG0xID0gZnVuY3Rpb24gZXhwbTEobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguZXhwbTEoKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuZmxvb3IgPSBmdW5jdGlvbiBmbG9vcigpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGguZmxvb3IodGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXguZmxvb3IgPSBmdW5jdGlvbiBmbG9vcihtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5mbG9vcigpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5mcm91bmQgPSBmdW5jdGlvbiBmcm91bmQoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLmZyb3VuZCh0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5mcm91bmQgPSBmdW5jdGlvbiBmcm91bmQobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguZnJvdW5kKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmxvZyA9IGZ1bmN0aW9uIGxvZygpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGgubG9nKHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LmxvZyA9IGZ1bmN0aW9uIGxvZyhtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5sb2coKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUubG9nMXAgPSBmdW5jdGlvbiBsb2cxcCgpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGgubG9nMXAodGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgubG9nMXAgPSBmdW5jdGlvbiBsb2cxcChtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5sb2cxcCgpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5sb2cxMCA9IGZ1bmN0aW9uIGxvZzEwKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgTWF0aC5sb2cxMCh0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5sb2cxMCA9IGZ1bmN0aW9uIGxvZzEwKG1hdHJpeCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LmxvZzEwKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLmxvZzIgPSBmdW5jdGlvbiBsb2cyKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgTWF0aC5sb2cyKHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LmxvZzIgPSBmdW5jdGlvbiBsb2cyKG1hdHJpeCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LmxvZzIoKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUucm91bmQgPSBmdW5jdGlvbiByb3VuZCgpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGgucm91bmQodGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucm91bmQgPSBmdW5jdGlvbiByb3VuZChtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5yb3VuZCgpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5zaWduID0gZnVuY3Rpb24gc2lnbigpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGguc2lnbih0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5zaWduID0gZnVuY3Rpb24gc2lnbihtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5zaWduKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnNpbiA9IGZ1bmN0aW9uIHNpbigpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGguc2luKHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnNpbiA9IGZ1bmN0aW9uIHNpbihtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5zaW4oKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUuc2luaCA9IGZ1bmN0aW9uIHNpbmgoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLnNpbmgodGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXguc2luaCA9IGZ1bmN0aW9uIHNpbmgobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXguc2luaCgpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5zcXJ0ID0gZnVuY3Rpb24gc3FydCgpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGguc3FydCh0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5zcXJ0ID0gZnVuY3Rpb24gc3FydChtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC5zcXJ0KCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucHJvdG90eXBlLnRhbiA9IGZ1bmN0aW9uIHRhbigpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGgudGFuKHRoaXMuZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnRhbiA9IGZ1bmN0aW9uIHRhbihtYXRyaXgpIHtcbiAgICBjb25zdCBuZXdNYXRyaXggPSBuZXcgTWF0cml4KG1hdHJpeCk7XG4gICAgcmV0dXJuIG5ld01hdHJpeC50YW4oKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUudGFuaCA9IGZ1bmN0aW9uIHRhbmgoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNvbHVtbnM7IGorKykge1xuICAgICAgICB0aGlzLnNldChpLCBqLCBNYXRoLnRhbmgodGhpcy5nZXQoaSwgaikpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgudGFuaCA9IGZ1bmN0aW9uIHRhbmgobWF0cml4KSB7XG4gICAgY29uc3QgbmV3TWF0cml4ID0gbmV3IE1hdHJpeChtYXRyaXgpO1xuICAgIHJldHVybiBuZXdNYXRyaXgudGFuaCgpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS50cnVuYyA9IGZ1bmN0aW9uIHRydW5jKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgTWF0aC50cnVuYyh0aGlzLmdldChpLCBqKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC50cnVuYyA9IGZ1bmN0aW9uIHRydW5jKG1hdHJpeCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LnRydW5jKCk7XG4gIH07XG5cbiAgQWJzdHJhY3RNYXRyaXgucG93ID0gZnVuY3Rpb24gcG93KG1hdHJpeCwgYXJnMCkge1xuICAgIGNvbnN0IG5ld01hdHJpeCA9IG5ldyBNYXRyaXgobWF0cml4KTtcbiAgICByZXR1cm4gbmV3TWF0cml4LnBvdyhhcmcwKTtcbiAgfTtcblxuICBBYnN0cmFjdE1hdHJpeC5wcm90b3R5cGUucG93ID0gZnVuY3Rpb24gcG93KHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiB0aGlzLnBvd1ModmFsdWUpO1xuICAgIHJldHVybiB0aGlzLnBvd00odmFsdWUpO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5wb3dTID0gZnVuY3Rpb24gcG93Uyh2YWx1ZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb3dzOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jb2x1bW5zOyBqKyspIHtcbiAgICAgICAgdGhpcy5zZXQoaSwgaiwgTWF0aC5wb3codGhpcy5nZXQoaSwgaiksIHZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEFic3RyYWN0TWF0cml4LnByb3RvdHlwZS5wb3dNID0gZnVuY3Rpb24gcG93TShtYXRyaXgpIHtcbiAgICBtYXRyaXggPSBNYXRyaXguY2hlY2tNYXRyaXgobWF0cml4KTtcbiAgICBpZiAodGhpcy5yb3dzICE9PSBtYXRyaXgucm93cyB8fFxuICAgICAgdGhpcy5jb2x1bW5zICE9PSBtYXRyaXguY29sdW1ucykge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ01hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCcpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93czsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRoaXMuc2V0KGksIGosIE1hdGgucG93KHRoaXMuZ2V0KGksIGopLCBtYXRyaXguZ2V0KGksIGopKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgQWJzdHJhY3RNYXRyaXggfSBmcm9tICcuLi9tYXRyaXgnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXcmFwcGVyTWF0cml4MkQgZXh0ZW5kcyBBYnN0cmFjdE1hdHJpeCB7XG4gIGNvbnN0cnVjdG9yKGRhdGEpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy5yb3dzID0gZGF0YS5sZW5ndGg7XG4gICAgdGhpcy5jb2x1bW5zID0gZGF0YVswXS5sZW5ndGg7XG4gIH1cblxuICBzZXQocm93SW5kZXgsIGNvbHVtbkluZGV4LCB2YWx1ZSkge1xuICAgIHRoaXMuZGF0YVtyb3dJbmRleF1bY29sdW1uSW5kZXhdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQocm93SW5kZXgsIGNvbHVtbkluZGV4KSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVtyb3dJbmRleF1bY29sdW1uSW5kZXhdO1xuICB9XG59XG4iLCJpbXBvcnQgTWF0cml4IGZyb20gJy4uL21hdHJpeCc7XG5pbXBvcnQgV3JhcHBlck1hdHJpeDJEIGZyb20gJy4uL3dyYXAvV3JhcHBlck1hdHJpeDJEJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTHVEZWNvbXBvc2l0aW9uIHtcbiAgY29uc3RydWN0b3IobWF0cml4KSB7XG4gICAgbWF0cml4ID0gV3JhcHBlck1hdHJpeDJELmNoZWNrTWF0cml4KG1hdHJpeCk7XG5cbiAgICBsZXQgbHUgPSBtYXRyaXguY2xvbmUoKTtcbiAgICBsZXQgcm93cyA9IGx1LnJvd3M7XG4gICAgbGV0IGNvbHVtbnMgPSBsdS5jb2x1bW5zO1xuICAgIGxldCBwaXZvdFZlY3RvciA9IG5ldyBGbG9hdDY0QXJyYXkocm93cyk7XG4gICAgbGV0IHBpdm90U2lnbiA9IDE7XG4gICAgbGV0IGksIGosIGssIHAsIHMsIHQsIHY7XG4gICAgbGV0IExVY29saiwga21heDtcblxuICAgIGZvciAoaSA9IDA7IGkgPCByb3dzOyBpKyspIHtcbiAgICAgIHBpdm90VmVjdG9yW2ldID0gaTtcbiAgICB9XG5cbiAgICBMVWNvbGogPSBuZXcgRmxvYXQ2NEFycmF5KHJvd3MpO1xuXG4gICAgZm9yIChqID0gMDsgaiA8IGNvbHVtbnM7IGorKykge1xuICAgICAgZm9yIChpID0gMDsgaSA8IHJvd3M7IGkrKykge1xuICAgICAgICBMVWNvbGpbaV0gPSBsdS5nZXQoaSwgaik7XG4gICAgICB9XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCByb3dzOyBpKyspIHtcbiAgICAgICAga21heCA9IE1hdGgubWluKGksIGopO1xuICAgICAgICBzID0gMDtcbiAgICAgICAgZm9yIChrID0gMDsgayA8IGttYXg7IGsrKykge1xuICAgICAgICAgIHMgKz0gbHUuZ2V0KGksIGspICogTFVjb2xqW2tdO1xuICAgICAgICB9XG4gICAgICAgIExVY29saltpXSAtPSBzO1xuICAgICAgICBsdS5zZXQoaSwgaiwgTFVjb2xqW2ldKTtcbiAgICAgIH1cblxuICAgICAgcCA9IGo7XG4gICAgICBmb3IgKGkgPSBqICsgMTsgaSA8IHJvd3M7IGkrKykge1xuICAgICAgICBpZiAoTWF0aC5hYnMoTFVjb2xqW2ldKSA+IE1hdGguYWJzKExVY29saltwXSkpIHtcbiAgICAgICAgICBwID0gaTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocCAhPT0gaikge1xuICAgICAgICBmb3IgKGsgPSAwOyBrIDwgY29sdW1uczsgaysrKSB7XG4gICAgICAgICAgdCA9IGx1LmdldChwLCBrKTtcbiAgICAgICAgICBsdS5zZXQocCwgaywgbHUuZ2V0KGosIGspKTtcbiAgICAgICAgICBsdS5zZXQoaiwgaywgdCk7XG4gICAgICAgIH1cblxuICAgICAgICB2ID0gcGl2b3RWZWN0b3JbcF07XG4gICAgICAgIHBpdm90VmVjdG9yW3BdID0gcGl2b3RWZWN0b3Jbal07XG4gICAgICAgIHBpdm90VmVjdG9yW2pdID0gdjtcblxuICAgICAgICBwaXZvdFNpZ24gPSAtcGl2b3RTaWduO1xuICAgICAgfVxuXG4gICAgICBpZiAoaiA8IHJvd3MgJiYgbHUuZ2V0KGosIGopICE9PSAwKSB7XG4gICAgICAgIGZvciAoaSA9IGogKyAxOyBpIDwgcm93czsgaSsrKSB7XG4gICAgICAgICAgbHUuc2V0KGksIGosIGx1LmdldChpLCBqKSAvIGx1LmdldChqLCBqKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLkxVID0gbHU7XG4gICAgdGhpcy5waXZvdFZlY3RvciA9IHBpdm90VmVjdG9yO1xuICAgIHRoaXMucGl2b3RTaWduID0gcGl2b3RTaWduO1xuICB9XG5cbiAgaXNTaW5ndWxhcigpIHtcbiAgICBsZXQgZGF0YSA9IHRoaXMuTFU7XG4gICAgbGV0IGNvbCA9IGRhdGEuY29sdW1ucztcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbDsgaisrKSB7XG4gICAgICBpZiAoZGF0YS5nZXQoaiwgaikgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHNvbHZlKHZhbHVlKSB7XG4gICAgdmFsdWUgPSBNYXRyaXguY2hlY2tNYXRyaXgodmFsdWUpO1xuXG4gICAgbGV0IGx1ID0gdGhpcy5MVTtcbiAgICBsZXQgcm93cyA9IGx1LnJvd3M7XG5cbiAgICBpZiAocm93cyAhPT0gdmFsdWUucm93cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1hdHJpeCBkaW1lbnNpb25zJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzU2luZ3VsYXIoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdMVSBtYXRyaXggaXMgc2luZ3VsYXInKTtcbiAgICB9XG5cbiAgICBsZXQgY291bnQgPSB2YWx1ZS5jb2x1bW5zO1xuICAgIGxldCBYID0gdmFsdWUuc3ViTWF0cml4Um93KHRoaXMucGl2b3RWZWN0b3IsIDAsIGNvdW50IC0gMSk7XG4gICAgbGV0IGNvbHVtbnMgPSBsdS5jb2x1bW5zO1xuICAgIGxldCBpLCBqLCBrO1xuXG4gICAgZm9yIChrID0gMDsgayA8IGNvbHVtbnM7IGsrKykge1xuICAgICAgZm9yIChpID0gayArIDE7IGkgPCBjb2x1bW5zOyBpKyspIHtcbiAgICAgICAgZm9yIChqID0gMDsgaiA8IGNvdW50OyBqKyspIHtcbiAgICAgICAgICBYLnNldChpLCBqLCBYLmdldChpLCBqKSAtIFguZ2V0KGssIGopICogbHUuZ2V0KGksIGspKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGsgPSBjb2x1bW5zIC0gMTsgayA+PSAwOyBrLS0pIHtcbiAgICAgIGZvciAoaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XG4gICAgICAgIFguc2V0KGssIGosIFguZ2V0KGssIGopIC8gbHUuZ2V0KGssIGspKTtcbiAgICAgIH1cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBrOyBpKyspIHtcbiAgICAgICAgZm9yIChqID0gMDsgaiA8IGNvdW50OyBqKyspIHtcbiAgICAgICAgICBYLnNldChpLCBqLCBYLmdldChpLCBqKSAtIFguZ2V0KGssIGopICogbHUuZ2V0KGksIGspKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gWDtcbiAgfVxuXG4gIGdldCBkZXRlcm1pbmFudCgpIHtcbiAgICBsZXQgZGF0YSA9IHRoaXMuTFU7XG4gICAgaWYgKCFkYXRhLmlzU3F1YXJlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWF0cml4IG11c3QgYmUgc3F1YXJlJyk7XG4gICAgfVxuICAgIGxldCBkZXRlcm1pbmFudCA9IHRoaXMucGl2b3RTaWduO1xuICAgIGxldCBjb2wgPSBkYXRhLmNvbHVtbnM7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2w7IGorKykge1xuICAgICAgZGV0ZXJtaW5hbnQgKj0gZGF0YS5nZXQoaiwgaik7XG4gICAgfVxuICAgIHJldHVybiBkZXRlcm1pbmFudDtcbiAgfVxuXG4gIGdldCBsb3dlclRyaWFuZ3VsYXJNYXRyaXgoKSB7XG4gICAgbGV0IGRhdGEgPSB0aGlzLkxVO1xuICAgIGxldCByb3dzID0gZGF0YS5yb3dzO1xuICAgIGxldCBjb2x1bW5zID0gZGF0YS5jb2x1bW5zO1xuICAgIGxldCBYID0gbmV3IE1hdHJpeChyb3dzLCBjb2x1bW5zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2x1bW5zOyBqKyspIHtcbiAgICAgICAgaWYgKGkgPiBqKSB7XG4gICAgICAgICAgWC5zZXQoaSwgaiwgZGF0YS5nZXQoaSwgaikpO1xuICAgICAgICB9IGVsc2UgaWYgKGkgPT09IGopIHtcbiAgICAgICAgICBYLnNldChpLCBqLCAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBYLnNldChpLCBqLCAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gWDtcbiAgfVxuXG4gIGdldCB1cHBlclRyaWFuZ3VsYXJNYXRyaXgoKSB7XG4gICAgbGV0IGRhdGEgPSB0aGlzLkxVO1xuICAgIGxldCByb3dzID0gZGF0YS5yb3dzO1xuICAgIGxldCBjb2x1bW5zID0gZGF0YS5jb2x1bW5zO1xuICAgIGxldCBYID0gbmV3IE1hdHJpeChyb3dzLCBjb2x1bW5zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2x1bW5zOyBqKyspIHtcbiAgICAgICAgaWYgKGkgPD0gaikge1xuICAgICAgICAgIFguc2V0KGksIGosIGRhdGEuZ2V0KGksIGopKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBYLnNldChpLCBqLCAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gWDtcbiAgfVxuXG4gIGdldCBwaXZvdFBlcm11dGF0aW9uVmVjdG9yKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucGl2b3RWZWN0b3IpO1xuICB9XG59XG4iLCJleHBvcnQgZnVuY3Rpb24gaHlwb3RlbnVzZShhLCBiKSB7XG4gIGxldCByID0gMDtcbiAgaWYgKE1hdGguYWJzKGEpID4gTWF0aC5hYnMoYikpIHtcbiAgICByID0gYiAvIGE7XG4gICAgcmV0dXJuIE1hdGguYWJzKGEpICogTWF0aC5zcXJ0KDEgKyByICogcik7XG4gIH1cbiAgaWYgKGIgIT09IDApIHtcbiAgICByID0gYSAvIGI7XG4gICAgcmV0dXJuIE1hdGguYWJzKGIpICogTWF0aC5zcXJ0KDEgKyByICogcik7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG4iLCJpbXBvcnQgTWF0cml4IGZyb20gJy4uL21hdHJpeCc7XG5pbXBvcnQgV3JhcHBlck1hdHJpeDJEIGZyb20gJy4uL3dyYXAvV3JhcHBlck1hdHJpeDJEJztcblxuaW1wb3J0IHsgaHlwb3RlbnVzZSB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFFyRGVjb21wb3NpdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgdmFsdWUgPSBXcmFwcGVyTWF0cml4MkQuY2hlY2tNYXRyaXgodmFsdWUpO1xuXG4gICAgbGV0IHFyID0gdmFsdWUuY2xvbmUoKTtcbiAgICBsZXQgbSA9IHZhbHVlLnJvd3M7XG4gICAgbGV0IG4gPSB2YWx1ZS5jb2x1bW5zO1xuICAgIGxldCByZGlhZyA9IG5ldyBGbG9hdDY0QXJyYXkobik7XG4gICAgbGV0IGksIGosIGssIHM7XG5cbiAgICBmb3IgKGsgPSAwOyBrIDwgbjsgaysrKSB7XG4gICAgICBsZXQgbnJtID0gMDtcbiAgICAgIGZvciAoaSA9IGs7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgbnJtID0gaHlwb3RlbnVzZShucm0sIHFyLmdldChpLCBrKSk7XG4gICAgICB9XG4gICAgICBpZiAobnJtICE9PSAwKSB7XG4gICAgICAgIGlmIChxci5nZXQoaywgaykgPCAwKSB7XG4gICAgICAgICAgbnJtID0gLW5ybTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSBrOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgICAgcXIuc2V0KGksIGssIHFyLmdldChpLCBrKSAvIG5ybSk7XG4gICAgICAgIH1cbiAgICAgICAgcXIuc2V0KGssIGssIHFyLmdldChrLCBrKSArIDEpO1xuICAgICAgICBmb3IgKGogPSBrICsgMTsgaiA8IG47IGorKykge1xuICAgICAgICAgIHMgPSAwO1xuICAgICAgICAgIGZvciAoaSA9IGs7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICAgIHMgKz0gcXIuZ2V0KGksIGspICogcXIuZ2V0KGksIGopO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzID0gLXMgLyBxci5nZXQoaywgayk7XG4gICAgICAgICAgZm9yIChpID0gazsgaSA8IG07IGkrKykge1xuICAgICAgICAgICAgcXIuc2V0KGksIGosIHFyLmdldChpLCBqKSArIHMgKiBxci5nZXQoaSwgaykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmRpYWdba10gPSAtbnJtO1xuICAgIH1cblxuICAgIHRoaXMuUVIgPSBxcjtcbiAgICB0aGlzLlJkaWFnID0gcmRpYWc7XG4gIH1cblxuICBzb2x2ZSh2YWx1ZSkge1xuICAgIHZhbHVlID0gTWF0cml4LmNoZWNrTWF0cml4KHZhbHVlKTtcblxuICAgIGxldCBxciA9IHRoaXMuUVI7XG4gICAgbGV0IG0gPSBxci5yb3dzO1xuXG4gICAgaWYgKHZhbHVlLnJvd3MgIT09IG0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWF0cml4IHJvdyBkaW1lbnNpb25zIG11c3QgYWdyZWUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzRnVsbFJhbmsoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXRyaXggaXMgcmFuayBkZWZpY2llbnQnKTtcbiAgICB9XG5cbiAgICBsZXQgY291bnQgPSB2YWx1ZS5jb2x1bW5zO1xuICAgIGxldCBYID0gdmFsdWUuY2xvbmUoKTtcbiAgICBsZXQgbiA9IHFyLmNvbHVtbnM7XG4gICAgbGV0IGksIGosIGssIHM7XG5cbiAgICBmb3IgKGsgPSAwOyBrIDwgbjsgaysrKSB7XG4gICAgICBmb3IgKGogPSAwOyBqIDwgY291bnQ7IGorKykge1xuICAgICAgICBzID0gMDtcbiAgICAgICAgZm9yIChpID0gazsgaSA8IG07IGkrKykge1xuICAgICAgICAgIHMgKz0gcXIuZ2V0KGksIGspICogWC5nZXQoaSwgaik7XG4gICAgICAgIH1cbiAgICAgICAgcyA9IC1zIC8gcXIuZ2V0KGssIGspO1xuICAgICAgICBmb3IgKGkgPSBrOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgICAgWC5zZXQoaSwgaiwgWC5nZXQoaSwgaikgKyBzICogcXIuZ2V0KGksIGspKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGsgPSBuIC0gMTsgayA+PSAwOyBrLS0pIHtcbiAgICAgIGZvciAoaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XG4gICAgICAgIFguc2V0KGssIGosIFguZ2V0KGssIGopIC8gdGhpcy5SZGlhZ1trXSk7XG4gICAgICB9XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgazsgaSsrKSB7XG4gICAgICAgIGZvciAoaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XG4gICAgICAgICAgWC5zZXQoaSwgaiwgWC5nZXQoaSwgaikgLSBYLmdldChrLCBqKSAqIHFyLmdldChpLCBrKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gWC5zdWJNYXRyaXgoMCwgbiAtIDEsIDAsIGNvdW50IC0gMSk7XG4gIH1cblxuICBpc0Z1bGxSYW5rKCkge1xuICAgIGxldCBjb2x1bW5zID0gdGhpcy5RUi5jb2x1bW5zO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uczsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5SZGlhZ1tpXSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IHVwcGVyVHJpYW5ndWxhck1hdHJpeCgpIHtcbiAgICBsZXQgcXIgPSB0aGlzLlFSO1xuICAgIGxldCBuID0gcXIuY29sdW1ucztcbiAgICBsZXQgWCA9IG5ldyBNYXRyaXgobiwgbik7XG4gICAgbGV0IGksIGo7XG4gICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgZm9yIChqID0gMDsgaiA8IG47IGorKykge1xuICAgICAgICBpZiAoaSA8IGopIHtcbiAgICAgICAgICBYLnNldChpLCBqLCBxci5nZXQoaSwgaikpO1xuICAgICAgICB9IGVsc2UgaWYgKGkgPT09IGopIHtcbiAgICAgICAgICBYLnNldChpLCBqLCB0aGlzLlJkaWFnW2ldKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBYLnNldChpLCBqLCAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gWDtcbiAgfVxuXG4gIGdldCBvcnRob2dvbmFsTWF0cml4KCkge1xuICAgIGxldCBxciA9IHRoaXMuUVI7XG4gICAgbGV0IHJvd3MgPSBxci5yb3dzO1xuICAgIGxldCBjb2x1bW5zID0gcXIuY29sdW1ucztcbiAgICBsZXQgWCA9IG5ldyBNYXRyaXgocm93cywgY29sdW1ucyk7XG4gICAgbGV0IGksIGosIGssIHM7XG5cbiAgICBmb3IgKGsgPSBjb2x1bW5zIC0gMTsgayA+PSAwOyBrLS0pIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCByb3dzOyBpKyspIHtcbiAgICAgICAgWC5zZXQoaSwgaywgMCk7XG4gICAgICB9XG4gICAgICBYLnNldChrLCBrLCAxKTtcbiAgICAgIGZvciAoaiA9IGs7IGogPCBjb2x1bW5zOyBqKyspIHtcbiAgICAgICAgaWYgKHFyLmdldChrLCBrKSAhPT0gMCkge1xuICAgICAgICAgIHMgPSAwO1xuICAgICAgICAgIGZvciAoaSA9IGs7IGkgPCByb3dzOyBpKyspIHtcbiAgICAgICAgICAgIHMgKz0gcXIuZ2V0KGksIGspICogWC5nZXQoaSwgaik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcyA9IC1zIC8gcXIuZ2V0KGssIGspO1xuXG4gICAgICAgICAgZm9yIChpID0gazsgaSA8IHJvd3M7IGkrKykge1xuICAgICAgICAgICAgWC5zZXQoaSwgaiwgWC5nZXQoaSwgaikgKyBzICogcXIuZ2V0KGksIGspKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFg7XG4gIH1cbn1cbiIsImltcG9ydCBNYXRyaXggZnJvbSAnLi4vbWF0cml4JztcbmltcG9ydCBXcmFwcGVyTWF0cml4MkQgZnJvbSAnLi4vd3JhcC9XcmFwcGVyTWF0cml4MkQnO1xuXG5pbXBvcnQgeyBoeXBvdGVudXNlIH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2luZ3VsYXJWYWx1ZURlY29tcG9zaXRpb24ge1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgdmFsdWUgPSBXcmFwcGVyTWF0cml4MkQuY2hlY2tNYXRyaXgodmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXRyaXggbXVzdCBiZSBub24tZW1wdHknKTtcbiAgICB9XG5cbiAgICBsZXQgbSA9IHZhbHVlLnJvd3M7XG4gICAgbGV0IG4gPSB2YWx1ZS5jb2x1bW5zO1xuXG4gICAgY29uc3Qge1xuICAgICAgY29tcHV0ZUxlZnRTaW5ndWxhclZlY3RvcnMgPSB0cnVlLFxuICAgICAgY29tcHV0ZVJpZ2h0U2luZ3VsYXJWZWN0b3JzID0gdHJ1ZSxcbiAgICAgIGF1dG9UcmFuc3Bvc2UgPSBmYWxzZSxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGxldCB3YW50dSA9IEJvb2xlYW4oY29tcHV0ZUxlZnRTaW5ndWxhclZlY3RvcnMpO1xuICAgIGxldCB3YW50diA9IEJvb2xlYW4oY29tcHV0ZVJpZ2h0U2luZ3VsYXJWZWN0b3JzKTtcblxuICAgIGxldCBzd2FwcGVkID0gZmFsc2U7XG4gICAgbGV0IGE7XG4gICAgaWYgKG0gPCBuKSB7XG4gICAgICBpZiAoIWF1dG9UcmFuc3Bvc2UpIHtcbiAgICAgICAgYSA9IHZhbHVlLmNsb25lKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnQ29tcHV0aW5nIFNWRCBvbiBhIG1hdHJpeCB3aXRoIG1vcmUgY29sdW1ucyB0aGFuIHJvd3MuIENvbnNpZGVyIGVuYWJsaW5nIGF1dG9UcmFuc3Bvc2UnLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYSA9IHZhbHVlLnRyYW5zcG9zZSgpO1xuICAgICAgICBtID0gYS5yb3dzO1xuICAgICAgICBuID0gYS5jb2x1bW5zO1xuICAgICAgICBzd2FwcGVkID0gdHJ1ZTtcbiAgICAgICAgbGV0IGF1eCA9IHdhbnR1O1xuICAgICAgICB3YW50dSA9IHdhbnR2O1xuICAgICAgICB3YW50diA9IGF1eDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYSA9IHZhbHVlLmNsb25lKCk7XG4gICAgfVxuXG4gICAgbGV0IG51ID0gTWF0aC5taW4obSwgbik7XG4gICAgbGV0IG5pID0gTWF0aC5taW4obSArIDEsIG4pO1xuICAgIGxldCBzID0gbmV3IEZsb2F0NjRBcnJheShuaSk7XG4gICAgbGV0IFUgPSBuZXcgTWF0cml4KG0sIG51KTtcbiAgICBsZXQgViA9IG5ldyBNYXRyaXgobiwgbik7XG5cbiAgICBsZXQgZSA9IG5ldyBGbG9hdDY0QXJyYXkobik7XG4gICAgbGV0IHdvcmsgPSBuZXcgRmxvYXQ2NEFycmF5KG0pO1xuXG4gICAgbGV0IHNpID0gbmV3IEZsb2F0NjRBcnJheShuaSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuaTsgaSsrKSBzaVtpXSA9IGk7XG5cbiAgICBsZXQgbmN0ID0gTWF0aC5taW4obSAtIDEsIG4pO1xuICAgIGxldCBucnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihuIC0gMiwgbSkpO1xuICAgIGxldCBtcmMgPSBNYXRoLm1heChuY3QsIG5ydCk7XG5cbiAgICBmb3IgKGxldCBrID0gMDsgayA8IG1yYzsgaysrKSB7XG4gICAgICBpZiAoayA8IG5jdCkge1xuICAgICAgICBzW2tdID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IGs7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICBzW2tdID0gaHlwb3RlbnVzZShzW2tdLCBhLmdldChpLCBrKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNba10gIT09IDApIHtcbiAgICAgICAgICBpZiAoYS5nZXQoaywgaykgPCAwKSB7XG4gICAgICAgICAgICBzW2tdID0gLXNba107XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAobGV0IGkgPSBrOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgICAgICBhLnNldChpLCBrLCBhLmdldChpLCBrKSAvIHNba10pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhLnNldChrLCBrLCBhLmdldChrLCBrKSArIDEpO1xuICAgICAgICB9XG4gICAgICAgIHNba10gPSAtc1trXTtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgaiA9IGsgKyAxOyBqIDwgbjsgaisrKSB7XG4gICAgICAgIGlmIChrIDwgbmN0ICYmIHNba10gIT09IDApIHtcbiAgICAgICAgICBsZXQgdCA9IDA7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGs7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICAgIHQgKz0gYS5nZXQoaSwgaykgKiBhLmdldChpLCBqKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdCA9IC10IC8gYS5nZXQoaywgayk7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGs7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICAgIGEuc2V0KGksIGosIGEuZ2V0KGksIGopICsgdCAqIGEuZ2V0KGksIGspKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZVtqXSA9IGEuZ2V0KGssIGopO1xuICAgICAgfVxuXG4gICAgICBpZiAod2FudHUgJiYgayA8IG5jdCkge1xuICAgICAgICBmb3IgKGxldCBpID0gazsgaSA8IG07IGkrKykge1xuICAgICAgICAgIFUuc2V0KGksIGssIGEuZ2V0KGksIGspKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoayA8IG5ydCkge1xuICAgICAgICBlW2tdID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IGsgKyAxOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgZVtrXSA9IGh5cG90ZW51c2UoZVtrXSwgZVtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVba10gIT09IDApIHtcbiAgICAgICAgICBpZiAoZVtrICsgMV0gPCAwKSB7XG4gICAgICAgICAgICBlW2tdID0gMCAtIGVba107XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAobGV0IGkgPSBrICsgMTsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgZVtpXSAvPSBlW2tdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlW2sgKyAxXSArPSAxO1xuICAgICAgICB9XG4gICAgICAgIGVba10gPSAtZVtrXTtcbiAgICAgICAgaWYgKGsgKyAxIDwgbSAmJiBlW2tdICE9PSAwKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGsgKyAxOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgICAgICB3b3JrW2ldID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGsgKyAxOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gayArIDE7IGogPCBuOyBqKyspIHtcbiAgICAgICAgICAgICAgd29ya1tpXSArPSBlW2pdICogYS5nZXQoaSwgaik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAobGV0IGogPSBrICsgMTsgaiA8IG47IGorKykge1xuICAgICAgICAgICAgbGV0IHQgPSAtZVtqXSAvIGVbayArIDFdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGsgKyAxOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgICAgICAgIGEuc2V0KGksIGosIGEuZ2V0KGksIGopICsgdCAqIHdvcmtbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAod2FudHYpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gayArIDE7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIFYuc2V0KGksIGssIGVbaV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBwID0gTWF0aC5taW4obiwgbSArIDEpO1xuICAgIGlmIChuY3QgPCBuKSB7XG4gICAgICBzW25jdF0gPSBhLmdldChuY3QsIG5jdCk7XG4gICAgfVxuICAgIGlmIChtIDwgcCkge1xuICAgICAgc1twIC0gMV0gPSAwO1xuICAgIH1cbiAgICBpZiAobnJ0ICsgMSA8IHApIHtcbiAgICAgIGVbbnJ0XSA9IGEuZ2V0KG5ydCwgcCAtIDEpO1xuICAgIH1cbiAgICBlW3AgLSAxXSA9IDA7XG5cbiAgICBpZiAod2FudHUpIHtcbiAgICAgIGZvciAobGV0IGogPSBuY3Q7IGogPCBudTsgaisrKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgICAgVS5zZXQoaSwgaiwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgVS5zZXQoaiwgaiwgMSk7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBrID0gbmN0IC0gMTsgayA+PSAwOyBrLS0pIHtcbiAgICAgICAgaWYgKHNba10gIT09IDApIHtcbiAgICAgICAgICBmb3IgKGxldCBqID0gayArIDE7IGogPCBudTsgaisrKSB7XG4gICAgICAgICAgICBsZXQgdCA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gazsgaSA8IG07IGkrKykge1xuICAgICAgICAgICAgICB0ICs9IFUuZ2V0KGksIGspICogVS5nZXQoaSwgaik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ID0gLXQgLyBVLmdldChrLCBrKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBrOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgICAgICAgIFUuc2V0KGksIGosIFUuZ2V0KGksIGopICsgdCAqIFUuZ2V0KGksIGspKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGs7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICAgIFUuc2V0KGksIGssIC1VLmdldChpLCBrKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFUuc2V0KGssIGssIDEgKyBVLmdldChrLCBrKSk7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICBVLnNldChpLCBrLCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICAgIFUuc2V0KGksIGssIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBVLnNldChrLCBrLCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3YW50dikge1xuICAgICAgZm9yIChsZXQgayA9IG4gLSAxOyBrID49IDA7IGstLSkge1xuICAgICAgICBpZiAoayA8IG5ydCAmJiBlW2tdICE9PSAwKSB7XG4gICAgICAgICAgZm9yIChsZXQgaiA9IGsgKyAxOyBqIDwgbjsgaisrKSB7XG4gICAgICAgICAgICBsZXQgdCA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gayArIDE7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgICAgdCArPSBWLmdldChpLCBrKSAqIFYuZ2V0KGksIGopO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdCA9IC10IC8gVi5nZXQoayArIDEsIGspO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGsgKyAxOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICAgIFYuc2V0KGksIGosIFYuZ2V0KGksIGopICsgdCAqIFYuZ2V0KGksIGspKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICBWLnNldChpLCBrLCAwKTtcbiAgICAgICAgfVxuICAgICAgICBWLnNldChrLCBrLCAxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcHAgPSBwIC0gMTtcbiAgICBsZXQgaXRlciA9IDA7XG4gICAgbGV0IGVwcyA9IE51bWJlci5FUFNJTE9OO1xuICAgIHdoaWxlIChwID4gMCkge1xuICAgICAgbGV0IGssIGthc2U7XG4gICAgICBmb3IgKGsgPSBwIC0gMjsgayA+PSAtMTsgay0tKSB7XG4gICAgICAgIGlmIChrID09PSAtMSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFscGhhID1cbiAgICAgICAgICBOdW1iZXIuTUlOX1ZBTFVFICsgZXBzICogTWF0aC5hYnMoc1trXSArIE1hdGguYWJzKHNbayArIDFdKSk7XG4gICAgICAgIGlmIChNYXRoLmFicyhlW2tdKSA8PSBhbHBoYSB8fCBOdW1iZXIuaXNOYU4oZVtrXSkpIHtcbiAgICAgICAgICBlW2tdID0gMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGsgPT09IHAgLSAyKSB7XG4gICAgICAgIGthc2UgPSA0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGtzO1xuICAgICAgICBmb3IgKGtzID0gcCAtIDE7IGtzID49IGs7IGtzLS0pIHtcbiAgICAgICAgICBpZiAoa3MgPT09IGspIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgdCA9XG4gICAgICAgICAgICAoa3MgIT09IHAgPyBNYXRoLmFicyhlW2tzXSkgOiAwKSArXG4gICAgICAgICAgICAoa3MgIT09IGsgKyAxID8gTWF0aC5hYnMoZVtrcyAtIDFdKSA6IDApO1xuICAgICAgICAgIGlmIChNYXRoLmFicyhzW2tzXSkgPD0gZXBzICogdCkge1xuICAgICAgICAgICAgc1trc10gPSAwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChrcyA9PT0gaykge1xuICAgICAgICAgIGthc2UgPSAzO1xuICAgICAgICB9IGVsc2UgaWYgKGtzID09PSBwIC0gMSkge1xuICAgICAgICAgIGthc2UgPSAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGthc2UgPSAyO1xuICAgICAgICAgIGsgPSBrcztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBrKys7XG5cbiAgICAgIHN3aXRjaCAoa2FzZSkge1xuICAgICAgICBjYXNlIDE6IHtcbiAgICAgICAgICBsZXQgZiA9IGVbcCAtIDJdO1xuICAgICAgICAgIGVbcCAtIDJdID0gMDtcbiAgICAgICAgICBmb3IgKGxldCBqID0gcCAtIDI7IGogPj0gazsgai0tKSB7XG4gICAgICAgICAgICBsZXQgdCA9IGh5cG90ZW51c2Uoc1tqXSwgZik7XG4gICAgICAgICAgICBsZXQgY3MgPSBzW2pdIC8gdDtcbiAgICAgICAgICAgIGxldCBzbiA9IGYgLyB0O1xuICAgICAgICAgICAgc1tqXSA9IHQ7XG4gICAgICAgICAgICBpZiAoaiAhPT0gaykge1xuICAgICAgICAgICAgICBmID0gLXNuICogZVtqIC0gMV07XG4gICAgICAgICAgICAgIGVbaiAtIDFdID0gY3MgKiBlW2ogLSAxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3YW50dikge1xuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgICAgIHQgPSBjcyAqIFYuZ2V0KGksIGopICsgc24gKiBWLmdldChpLCBwIC0gMSk7XG4gICAgICAgICAgICAgICAgVi5zZXQoaSwgcCAtIDEsIC1zbiAqIFYuZ2V0KGksIGopICsgY3MgKiBWLmdldChpLCBwIC0gMSkpO1xuICAgICAgICAgICAgICAgIFYuc2V0KGksIGosIHQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMjoge1xuICAgICAgICAgIGxldCBmID0gZVtrIC0gMV07XG4gICAgICAgICAgZVtrIC0gMV0gPSAwO1xuICAgICAgICAgIGZvciAobGV0IGogPSBrOyBqIDwgcDsgaisrKSB7XG4gICAgICAgICAgICBsZXQgdCA9IGh5cG90ZW51c2Uoc1tqXSwgZik7XG4gICAgICAgICAgICBsZXQgY3MgPSBzW2pdIC8gdDtcbiAgICAgICAgICAgIGxldCBzbiA9IGYgLyB0O1xuICAgICAgICAgICAgc1tqXSA9IHQ7XG4gICAgICAgICAgICBmID0gLXNuICogZVtqXTtcbiAgICAgICAgICAgIGVbal0gPSBjcyAqIGVbal07XG4gICAgICAgICAgICBpZiAod2FudHUpIHtcbiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0ID0gY3MgKiBVLmdldChpLCBqKSArIHNuICogVS5nZXQoaSwgayAtIDEpO1xuICAgICAgICAgICAgICAgIFUuc2V0KGksIGsgLSAxLCAtc24gKiBVLmdldChpLCBqKSArIGNzICogVS5nZXQoaSwgayAtIDEpKTtcbiAgICAgICAgICAgICAgICBVLnNldChpLCBqLCB0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDM6IHtcbiAgICAgICAgICBjb25zdCBzY2FsZSA9IE1hdGgubWF4KFxuICAgICAgICAgICAgTWF0aC5hYnMoc1twIC0gMV0pLFxuICAgICAgICAgICAgTWF0aC5hYnMoc1twIC0gMl0pLFxuICAgICAgICAgICAgTWF0aC5hYnMoZVtwIC0gMl0pLFxuICAgICAgICAgICAgTWF0aC5hYnMoc1trXSksXG4gICAgICAgICAgICBNYXRoLmFicyhlW2tdKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IHNwID0gc1twIC0gMV0gLyBzY2FsZTtcbiAgICAgICAgICBjb25zdCBzcG0xID0gc1twIC0gMl0gLyBzY2FsZTtcbiAgICAgICAgICBjb25zdCBlcG0xID0gZVtwIC0gMl0gLyBzY2FsZTtcbiAgICAgICAgICBjb25zdCBzayA9IHNba10gLyBzY2FsZTtcbiAgICAgICAgICBjb25zdCBlayA9IGVba10gLyBzY2FsZTtcbiAgICAgICAgICBjb25zdCBiID0gKChzcG0xICsgc3ApICogKHNwbTEgLSBzcCkgKyBlcG0xICogZXBtMSkgLyAyO1xuICAgICAgICAgIGNvbnN0IGMgPSBzcCAqIGVwbTEgKiAoc3AgKiBlcG0xKTtcbiAgICAgICAgICBsZXQgc2hpZnQgPSAwO1xuICAgICAgICAgIGlmIChiICE9PSAwIHx8IGMgIT09IDApIHtcbiAgICAgICAgICAgIGlmIChiIDwgMCkge1xuICAgICAgICAgICAgICBzaGlmdCA9IDAgLSBNYXRoLnNxcnQoYiAqIGIgKyBjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNoaWZ0ID0gTWF0aC5zcXJ0KGIgKiBiICsgYyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaGlmdCA9IGMgLyAoYiArIHNoaWZ0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IGYgPSAoc2sgKyBzcCkgKiAoc2sgLSBzcCkgKyBzaGlmdDtcbiAgICAgICAgICBsZXQgZyA9IHNrICogZWs7XG4gICAgICAgICAgZm9yIChsZXQgaiA9IGs7IGogPCBwIC0gMTsgaisrKSB7XG4gICAgICAgICAgICBsZXQgdCA9IGh5cG90ZW51c2UoZiwgZyk7XG4gICAgICAgICAgICBpZiAodCA9PT0gMCkgdCA9IE51bWJlci5NSU5fVkFMVUU7XG4gICAgICAgICAgICBsZXQgY3MgPSBmIC8gdDtcbiAgICAgICAgICAgIGxldCBzbiA9IGcgLyB0O1xuICAgICAgICAgICAgaWYgKGogIT09IGspIHtcbiAgICAgICAgICAgICAgZVtqIC0gMV0gPSB0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZiA9IGNzICogc1tqXSArIHNuICogZVtqXTtcbiAgICAgICAgICAgIGVbal0gPSBjcyAqIGVbal0gLSBzbiAqIHNbal07XG4gICAgICAgICAgICBnID0gc24gKiBzW2ogKyAxXTtcbiAgICAgICAgICAgIHNbaiArIDFdID0gY3MgKiBzW2ogKyAxXTtcbiAgICAgICAgICAgIGlmICh3YW50dikge1xuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgICAgIHQgPSBjcyAqIFYuZ2V0KGksIGopICsgc24gKiBWLmdldChpLCBqICsgMSk7XG4gICAgICAgICAgICAgICAgVi5zZXQoaSwgaiArIDEsIC1zbiAqIFYuZ2V0KGksIGopICsgY3MgKiBWLmdldChpLCBqICsgMSkpO1xuICAgICAgICAgICAgICAgIFYuc2V0KGksIGosIHQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ID0gaHlwb3RlbnVzZShmLCBnKTtcbiAgICAgICAgICAgIGlmICh0ID09PSAwKSB0ID0gTnVtYmVyLk1JTl9WQUxVRTtcbiAgICAgICAgICAgIGNzID0gZiAvIHQ7XG4gICAgICAgICAgICBzbiA9IGcgLyB0O1xuICAgICAgICAgICAgc1tqXSA9IHQ7XG4gICAgICAgICAgICBmID0gY3MgKiBlW2pdICsgc24gKiBzW2ogKyAxXTtcbiAgICAgICAgICAgIHNbaiArIDFdID0gLXNuICogZVtqXSArIGNzICogc1tqICsgMV07XG4gICAgICAgICAgICBnID0gc24gKiBlW2ogKyAxXTtcbiAgICAgICAgICAgIGVbaiArIDFdID0gY3MgKiBlW2ogKyAxXTtcbiAgICAgICAgICAgIGlmICh3YW50dSAmJiBqIDwgbSAtIDEpIHtcbiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0ID0gY3MgKiBVLmdldChpLCBqKSArIHNuICogVS5nZXQoaSwgaiArIDEpO1xuICAgICAgICAgICAgICAgIFUuc2V0KGksIGogKyAxLCAtc24gKiBVLmdldChpLCBqKSArIGNzICogVS5nZXQoaSwgaiArIDEpKTtcbiAgICAgICAgICAgICAgICBVLnNldChpLCBqLCB0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBlW3AgLSAyXSA9IGY7XG4gICAgICAgICAgaXRlciA9IGl0ZXIgKyAxO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgNDoge1xuICAgICAgICAgIGlmIChzW2tdIDw9IDApIHtcbiAgICAgICAgICAgIHNba10gPSBzW2tdIDwgMCA/IC1zW2tdIDogMDtcbiAgICAgICAgICAgIGlmICh3YW50dikge1xuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBwcDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgVi5zZXQoaSwgaywgLVYuZ2V0KGksIGspKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoayA8IHBwKSB7XG4gICAgICAgICAgICBpZiAoc1trXSA+PSBzW2sgKyAxXSkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB0ID0gc1trXTtcbiAgICAgICAgICAgIHNba10gPSBzW2sgKyAxXTtcbiAgICAgICAgICAgIHNbayArIDFdID0gdDtcbiAgICAgICAgICAgIGlmICh3YW50diAmJiBrIDwgbiAtIDEpIHtcbiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0ID0gVi5nZXQoaSwgayArIDEpO1xuICAgICAgICAgICAgICAgIFYuc2V0KGksIGsgKyAxLCBWLmdldChpLCBrKSk7XG4gICAgICAgICAgICAgICAgVi5zZXQoaSwgaywgdCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3YW50dSAmJiBrIDwgbSAtIDEpIHtcbiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0ID0gVS5nZXQoaSwgayArIDEpO1xuICAgICAgICAgICAgICAgIFUuc2V0KGksIGsgKyAxLCBVLmdldChpLCBrKSk7XG4gICAgICAgICAgICAgICAgVS5zZXQoaSwgaywgdCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGsrKztcbiAgICAgICAgICB9XG4gICAgICAgICAgaXRlciA9IDA7XG4gICAgICAgICAgcC0tO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5vIGRlZmF1bHRcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3dhcHBlZCkge1xuICAgICAgbGV0IHRtcCA9IFY7XG4gICAgICBWID0gVTtcbiAgICAgIFUgPSB0bXA7XG4gICAgfVxuXG4gICAgdGhpcy5tID0gbTtcbiAgICB0aGlzLm4gPSBuO1xuICAgIHRoaXMucyA9IHM7XG4gICAgdGhpcy5VID0gVTtcbiAgICB0aGlzLlYgPSBWO1xuICB9XG5cbiAgc29sdmUodmFsdWUpIHtcbiAgICBsZXQgWSA9IHZhbHVlO1xuICAgIGxldCBlID0gdGhpcy50aHJlc2hvbGQ7XG4gICAgbGV0IHNjb2xzID0gdGhpcy5zLmxlbmd0aDtcbiAgICBsZXQgTHMgPSBNYXRyaXguemVyb3Moc2NvbHMsIHNjb2xzKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2NvbHM7IGkrKykge1xuICAgICAgaWYgKE1hdGguYWJzKHRoaXMuc1tpXSkgPD0gZSkge1xuICAgICAgICBMcy5zZXQoaSwgaSwgMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBMcy5zZXQoaSwgaSwgMSAvIHRoaXMuc1tpXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IFUgPSB0aGlzLlU7XG4gICAgbGV0IFYgPSB0aGlzLnJpZ2h0U2luZ3VsYXJWZWN0b3JzO1xuXG4gICAgbGV0IFZMID0gVi5tbXVsKExzKTtcbiAgICBsZXQgdnJvd3MgPSBWLnJvd3M7XG4gICAgbGV0IHVyb3dzID0gVS5yb3dzO1xuICAgIGxldCBWTFUgPSBNYXRyaXguemVyb3ModnJvd3MsIHVyb3dzKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB1cm93czsgaisrKSB7XG4gICAgICAgIGxldCBzdW0gPSAwO1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHNjb2xzOyBrKyspIHtcbiAgICAgICAgICBzdW0gKz0gVkwuZ2V0KGksIGspICogVS5nZXQoaiwgayk7XG4gICAgICAgIH1cbiAgICAgICAgVkxVLnNldChpLCBqLCBzdW0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBWTFUubW11bChZKTtcbiAgfVxuXG4gIHNvbHZlRm9yRGlhZ29uYWwodmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5zb2x2ZShNYXRyaXguZGlhZyh2YWx1ZSkpO1xuICB9XG5cbiAgaW52ZXJzZSgpIHtcbiAgICBsZXQgViA9IHRoaXMuVjtcbiAgICBsZXQgZSA9IHRoaXMudGhyZXNob2xkO1xuICAgIGxldCB2cm93cyA9IFYucm93cztcbiAgICBsZXQgdmNvbHMgPSBWLmNvbHVtbnM7XG4gICAgbGV0IFggPSBuZXcgTWF0cml4KHZyb3dzLCB0aGlzLnMubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB2Y29sczsgaisrKSB7XG4gICAgICAgIGlmIChNYXRoLmFicyh0aGlzLnNbal0pID4gZSkge1xuICAgICAgICAgIFguc2V0KGksIGosIFYuZ2V0KGksIGopIC8gdGhpcy5zW2pdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBVID0gdGhpcy5VO1xuXG4gICAgbGV0IHVyb3dzID0gVS5yb3dzO1xuICAgIGxldCB1Y29scyA9IFUuY29sdW1ucztcbiAgICBsZXQgWSA9IG5ldyBNYXRyaXgodnJvd3MsIHVyb3dzKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdnJvd3M7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB1cm93czsgaisrKSB7XG4gICAgICAgIGxldCBzdW0gPSAwO1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHVjb2xzOyBrKyspIHtcbiAgICAgICAgICBzdW0gKz0gWC5nZXQoaSwgaykgKiBVLmdldChqLCBrKTtcbiAgICAgICAgfVxuICAgICAgICBZLnNldChpLCBqLCBzdW0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBZO1xuICB9XG5cbiAgZ2V0IGNvbmRpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zWzBdIC8gdGhpcy5zW01hdGgubWluKHRoaXMubSwgdGhpcy5uKSAtIDFdO1xuICB9XG5cbiAgZ2V0IG5vcm0yKCkge1xuICAgIHJldHVybiB0aGlzLnNbMF07XG4gIH1cblxuICBnZXQgcmFuaygpIHtcbiAgICBsZXQgdG9sID0gTWF0aC5tYXgodGhpcy5tLCB0aGlzLm4pICogdGhpcy5zWzBdICogTnVtYmVyLkVQU0lMT047XG4gICAgbGV0IHIgPSAwO1xuICAgIGxldCBzID0gdGhpcy5zO1xuICAgIGZvciAobGV0IGkgPSAwLCBpaSA9IHMubGVuZ3RoOyBpIDwgaWk7IGkrKykge1xuICAgICAgaWYgKHNbaV0gPiB0b2wpIHtcbiAgICAgICAgcisrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfVxuXG4gIGdldCBkaWFnb25hbCgpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnMpO1xuICB9XG5cbiAgZ2V0IHRocmVzaG9sZCgpIHtcbiAgICByZXR1cm4gKE51bWJlci5FUFNJTE9OIC8gMikgKiBNYXRoLm1heCh0aGlzLm0sIHRoaXMubikgKiB0aGlzLnNbMF07XG4gIH1cblxuICBnZXQgbGVmdFNpbmd1bGFyVmVjdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5VO1xuICB9XG5cbiAgZ2V0IHJpZ2h0U2luZ3VsYXJWZWN0b3JzKCkge1xuICAgIHJldHVybiB0aGlzLlY7XG4gIH1cblxuICBnZXQgZGlhZ29uYWxNYXRyaXgoKSB7XG4gICAgcmV0dXJuIE1hdHJpeC5kaWFnKHRoaXMucyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IGludmVyc2UsIE1hdHJpeCB9IGZyb20gJ21sLW1hdHJpeCc7XG5cbi8qKlxuICogRGlmZmVyZW5jZSBvZiB0aGUgbWF0cml4IGZ1bmN0aW9uIG92ZXIgdGhlIHBhcmFtZXRlcnNcbiAqIEBpZ25vcmVcbiAqIEBwYXJhbSB7e3g6QXJyYXk8bnVtYmVyPiwgeTpBcnJheTxudW1iZXI+fX0gZGF0YSAtIEFycmF5IG9mIHBvaW50cyB0byBmaXQgaW4gdGhlIGZvcm1hdCBbeDEsIHgyLCAuLi4gXSwgW3kxLCB5MiwgLi4uIF1cbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gZXZhbHVhdGVkRGF0YSAtIEFycmF5IG9mIHByZXZpb3VzIGV2YWx1YXRlZCBmdW5jdGlvbiB2YWx1ZXNcbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gcGFyYW1zIC0gQXJyYXkgb2YgcHJldmlvdXMgcGFyYW1ldGVyIHZhbHVlc1xuICogQHBhcmFtIHtudW1iZXJ9IGdyYWRpZW50RGlmZmVyZW5jZSAtIEFkanVzdG1lbnQgZm9yIGRlY3JlYXNlIHRoZSBkYW1waW5nIHBhcmFtZXRlclxuICogQHBhcmFtIHtmdW5jdGlvbn0gcGFyYW1GdW5jdGlvbiAtIFRoZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm5zIGEgZnVuY3Rpb24gd2l0aCB0aGUgaW5kZXBlbmRlbnQgdmFyaWFibGUgYXMgYSBwYXJhbWV0ZXJcbiAqIEByZXR1cm4ge01hdHJpeH1cbiAqL1xuZnVuY3Rpb24gZ3JhZGllbnRGdW5jdGlvbihcbiAgZGF0YSxcbiAgZXZhbHVhdGVkRGF0YSxcbiAgcGFyYW1zLFxuICBncmFkaWVudERpZmZlcmVuY2UsXG4gIHBhcmFtRnVuY3Rpb24sXG4pIHtcbiAgY29uc3QgbiA9IHBhcmFtcy5sZW5ndGg7XG4gIGNvbnN0IG0gPSBkYXRhLngubGVuZ3RoO1xuXG4gIGxldCBhbnMgPSBuZXcgQXJyYXkobik7XG5cbiAgZm9yIChsZXQgcGFyYW0gPSAwOyBwYXJhbSA8IG47IHBhcmFtKyspIHtcbiAgICBhbnNbcGFyYW1dID0gbmV3IEFycmF5KG0pO1xuICAgIGxldCBhdXhQYXJhbXMgPSBwYXJhbXMuc2xpY2UoKTtcbiAgICBhdXhQYXJhbXNbcGFyYW1dICs9IGdyYWRpZW50RGlmZmVyZW5jZTtcbiAgICBsZXQgZnVuY1BhcmFtID0gcGFyYW1GdW5jdGlvbihhdXhQYXJhbXMpO1xuXG4gICAgZm9yIChsZXQgcG9pbnQgPSAwOyBwb2ludCA8IG07IHBvaW50KyspIHtcbiAgICAgIGFuc1twYXJhbV1bcG9pbnRdID0gZXZhbHVhdGVkRGF0YVtwb2ludF0gLSBmdW5jUGFyYW0oZGF0YS54W3BvaW50XSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgTWF0cml4KGFucyk7XG59XG5cbi8qKlxuICogTWF0cml4IGZ1bmN0aW9uIG92ZXIgdGhlIHNhbXBsZXNcbiAqIEBpZ25vcmVcbiAqIEBwYXJhbSB7e3g6QXJyYXk8bnVtYmVyPiwgeTpBcnJheTxudW1iZXI+fX0gZGF0YSAtIEFycmF5IG9mIHBvaW50cyB0byBmaXQgaW4gdGhlIGZvcm1hdCBbeDEsIHgyLCAuLi4gXSwgW3kxLCB5MiwgLi4uIF1cbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gZXZhbHVhdGVkRGF0YSAtIEFycmF5IG9mIHByZXZpb3VzIGV2YWx1YXRlZCBmdW5jdGlvbiB2YWx1ZXNcbiAqIEByZXR1cm4ge01hdHJpeH1cbiAqL1xuZnVuY3Rpb24gbWF0cml4RnVuY3Rpb24oZGF0YSwgZXZhbHVhdGVkRGF0YSkge1xuICBjb25zdCBtID0gZGF0YS54Lmxlbmd0aDtcblxuICBsZXQgYW5zID0gbmV3IEFycmF5KG0pO1xuXG4gIGZvciAobGV0IHBvaW50ID0gMDsgcG9pbnQgPCBtOyBwb2ludCsrKSB7XG4gICAgYW5zW3BvaW50XSA9IFtkYXRhLnlbcG9pbnRdIC0gZXZhbHVhdGVkRGF0YVtwb2ludF1dO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBNYXRyaXgoYW5zKTtcbn1cblxuLyoqXG4gKiBJdGVyYXRpb24gZm9yIExldmVuYmVyZy1NYXJxdWFyZHRcbiAqIEBpZ25vcmVcbiAqIEBwYXJhbSB7e3g6QXJyYXk8bnVtYmVyPiwgeTpBcnJheTxudW1iZXI+fX0gZGF0YSAtIEFycmF5IG9mIHBvaW50cyB0byBmaXQgaW4gdGhlIGZvcm1hdCBbeDEsIHgyLCAuLi4gXSwgW3kxLCB5MiwgLi4uIF1cbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gcGFyYW1zIC0gQXJyYXkgb2YgcHJldmlvdXMgcGFyYW1ldGVyIHZhbHVlc1xuICogQHBhcmFtIHtudW1iZXJ9IGRhbXBpbmcgLSBMZXZlbmJlcmctTWFycXVhcmR0IHBhcmFtZXRlclxuICogQHBhcmFtIHtudW1iZXJ9IGdyYWRpZW50RGlmZmVyZW5jZSAtIEFkanVzdG1lbnQgZm9yIGRlY3JlYXNlIHRoZSBkYW1waW5nIHBhcmFtZXRlclxuICogQHBhcmFtIHtmdW5jdGlvbn0gcGFyYW1ldGVyaXplZEZ1bmN0aW9uIC0gVGhlIHBhcmFtZXRlcnMgYW5kIHJldHVybnMgYSBmdW5jdGlvbiB3aXRoIHRoZSBpbmRlcGVuZGVudCB2YXJpYWJsZSBhcyBhIHBhcmFtZXRlclxuICogQHJldHVybiB7QXJyYXk8bnVtYmVyPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3RlcChcbiAgZGF0YSxcbiAgcGFyYW1zLFxuICBkYW1waW5nLFxuICBncmFkaWVudERpZmZlcmVuY2UsXG4gIHBhcmFtZXRlcml6ZWRGdW5jdGlvbixcbikge1xuICBsZXQgdmFsdWUgPSBkYW1waW5nICogZ3JhZGllbnREaWZmZXJlbmNlICogZ3JhZGllbnREaWZmZXJlbmNlO1xuICBsZXQgaWRlbnRpdHkgPSBNYXRyaXguZXllKHBhcmFtcy5sZW5ndGgsIHBhcmFtcy5sZW5ndGgsIHZhbHVlKTtcblxuICBjb25zdCBmdW5jID0gcGFyYW1ldGVyaXplZEZ1bmN0aW9uKHBhcmFtcyk7XG5cbiAgbGV0IGV2YWx1YXRlZERhdGEgPSBuZXcgRmxvYXQ2NEFycmF5KGRhdGEueC5sZW5ndGgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEueC5sZW5ndGg7IGkrKykge1xuICAgIGV2YWx1YXRlZERhdGFbaV0gPSBmdW5jKGRhdGEueFtpXSk7XG4gIH1cblxuICBsZXQgZ3JhZGllbnRGdW5jID0gZ3JhZGllbnRGdW5jdGlvbihcbiAgICBkYXRhLFxuICAgIGV2YWx1YXRlZERhdGEsXG4gICAgcGFyYW1zLFxuICAgIGdyYWRpZW50RGlmZmVyZW5jZSxcbiAgICBwYXJhbWV0ZXJpemVkRnVuY3Rpb24sXG4gICk7XG4gIGxldCBtYXRyaXhGdW5jID0gbWF0cml4RnVuY3Rpb24oZGF0YSwgZXZhbHVhdGVkRGF0YSk7XG4gIGxldCBpbnZlcnNlTWF0cml4ID0gaW52ZXJzZShcbiAgICBpZGVudGl0eS5hZGQoZ3JhZGllbnRGdW5jLm1tdWwoZ3JhZGllbnRGdW5jLnRyYW5zcG9zZSgpKSksXG4gICk7XG5cbiAgcGFyYW1zID0gbmV3IE1hdHJpeChbcGFyYW1zXSk7XG4gIHBhcmFtcyA9IHBhcmFtcy5zdWIoXG4gICAgaW52ZXJzZU1hdHJpeFxuICAgICAgLm1tdWwoZ3JhZGllbnRGdW5jKVxuICAgICAgLm1tdWwobWF0cml4RnVuYylcbiAgICAgIC5tdWwoZ3JhZGllbnREaWZmZXJlbmNlKVxuICAgICAgLnRyYW5zcG9zZSgpLFxuICApO1xuXG4gIHJldHVybiBwYXJhbXMudG8xREFycmF5KCk7XG59XG4iLCJpbXBvcnQgTHVEZWNvbXBvc2l0aW9uIGZyb20gJy4vZGMvbHUnO1xuaW1wb3J0IFFyRGVjb21wb3NpdGlvbiBmcm9tICcuL2RjL3FyJztcbmltcG9ydCBTaW5ndWxhclZhbHVlRGVjb21wb3NpdGlvbiBmcm9tICcuL2RjL3N2ZCc7XG5pbXBvcnQgTWF0cml4IGZyb20gJy4vbWF0cml4JztcbmltcG9ydCBXcmFwcGVyTWF0cml4MkQgZnJvbSAnLi93cmFwL1dyYXBwZXJNYXRyaXgyRCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZlcnNlKG1hdHJpeCwgdXNlU1ZEID0gZmFsc2UpIHtcbiAgbWF0cml4ID0gV3JhcHBlck1hdHJpeDJELmNoZWNrTWF0cml4KG1hdHJpeCk7XG4gIGlmICh1c2VTVkQpIHtcbiAgICByZXR1cm4gbmV3IFNpbmd1bGFyVmFsdWVEZWNvbXBvc2l0aW9uKG1hdHJpeCkuaW52ZXJzZSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzb2x2ZShtYXRyaXgsIE1hdHJpeC5leWUobWF0cml4LnJvd3MpKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc29sdmUobGVmdEhhbmRTaWRlLCByaWdodEhhbmRTaWRlLCB1c2VTVkQgPSBmYWxzZSkge1xuICBsZWZ0SGFuZFNpZGUgPSBXcmFwcGVyTWF0cml4MkQuY2hlY2tNYXRyaXgobGVmdEhhbmRTaWRlKTtcbiAgcmlnaHRIYW5kU2lkZSA9IFdyYXBwZXJNYXRyaXgyRC5jaGVja01hdHJpeChyaWdodEhhbmRTaWRlKTtcbiAgaWYgKHVzZVNWRCkge1xuICAgIHJldHVybiBuZXcgU2luZ3VsYXJWYWx1ZURlY29tcG9zaXRpb24obGVmdEhhbmRTaWRlKS5zb2x2ZShyaWdodEhhbmRTaWRlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGVmdEhhbmRTaWRlLmlzU3F1YXJlKClcbiAgICAgID8gbmV3IEx1RGVjb21wb3NpdGlvbihsZWZ0SGFuZFNpZGUpLnNvbHZlKHJpZ2h0SGFuZFNpZGUpXG4gICAgICA6IG5ldyBRckRlY29tcG9zaXRpb24obGVmdEhhbmRTaWRlKS5zb2x2ZShyaWdodEhhbmRTaWRlKTtcbiAgfVxufVxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbi8qKlxuICogVGhpcyBpcyBhIEphdmFTY3JpcHQgcmVpbXBsZW1lbnRhdGlvbiBvZiBVTUFQIChvcmlnaW5hbCBsaWNlbnNlIGJlbG93KSwgZnJvbVxuICogdGhlIHB5dGhvbiBpbXBsZW1lbnRhdGlvbiBmb3VuZCBhdCBodHRwczovL2dpdGh1Yi5jb20vbG1jaW5uZXMvdW1hcC5cbiAqXG4gKiBAYXV0aG9yIGFuZHljb2VuZW5AZ29vZ2xlLmNvbSAoQW5keSBDb2VuZW4pXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIEJTRCAzLUNsYXVzZSBMaWNlbnNlXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE3LCBMZWxhbmQgTWNJbm5lc1xuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXRcbiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuICpcbiAqICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzXG4gKiAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICpcbiAqICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICogICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG4gKiAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuICpcbiAqICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0c1xuICogICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbVxuICogICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLlxuICpcbiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiXG4gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFXG4gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEVcbiAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMXG4gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUlxuICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVJcbiAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksXG4gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRVxuICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqL1xuaW1wb3J0ICogYXMgaGVhcCBmcm9tICcuL2hlYXAnO1xuaW1wb3J0ICogYXMgbWF0cml4IGZyb20gJy4vbWF0cml4JztcbmltcG9ydCAqIGFzIG5uRGVzY2VudCBmcm9tICcuL25uX2Rlc2NlbnQnO1xuaW1wb3J0ICogYXMgdHJlZSBmcm9tICcuL3RyZWUnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgTE0gZnJvbSAnbWwtbGV2ZW5iZXJnLW1hcnF1YXJkdCc7XG5jb25zdCBTTU9PVEhfS19UT0xFUkFOQ0UgPSAxZS01O1xuY29uc3QgTUlOX0tfRElTVF9TQ0FMRSA9IDFlLTM7XG4vKipcbiAqIFVNQVAgcHJvamVjdGlvbiBzeXN0ZW0sIGJhc2VkIG9uIHRoZSBweXRob24gaW1wbGVtZW50YXRpb24gZnJvbSBNY0lubmVzLCBMLFxuICogSGVhbHksIEosIFVNQVA6IFVuaWZvcm0gTWFuaWZvbGQgQXBwcm94aW1hdGlvbiBhbmQgUHJvamVjdGlvbiBmb3IgRGltZW5zaW9uXG4gKiBSZWR1Y3Rpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9sbWNpbm5lcy91bWFwKS5cbiAqXG4gKiBUaGlzIGltcGxlbWVudGF0aW9uIGRpZmZlcnMgaW4gYSBmZXcgcmVnYXJkczpcbiAqIGEpIFRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZW1iZWRkaW5nIGZvciBvcHRpbWl6YXRpb24gaXMgbm90IGNvbXB1dGVkIHVzaW5nXG4gKiAgICBhIHNwZWN0cmFsIG1ldGhvZCwgcmF0aGVyIGl0IGlzIGluaXRpYWxpemVkIHJhbmRvbWx5LiBUaGlzIGF2b2lkcyBzb21lXG4gKiAgICBjb21wdXRhdGlvbmFsbHkgaW50ZW5zaXZlIG1hdHJpeCBlaWdlbiBjb21wdXRhdGlvbnMgdGhhdCBhcmVuJ3QgZWFzaWx5XG4gKiAgICBwb3J0ZWQgdG8gSmF2YVNjcmlwdC5cbiAqIGIpIEEgbG90IG9mIFwiZXh0cmFcIiBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG9taXR0ZWQgZnJvbSB0aGlzIGltcGxlbWVudGF0aW9uLFxuICogICAgbW9zdCBub3RhYmx5IGEgZ3JlYXQgZGVhbCBvZiBhbHRlcm5hdGUgZGlzdGFuY2UgZnVuY3Rpb25zLlxuICpcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gcHJvdmlkZXMgdGhyZWUgbWV0aG9kcyBvZiByZWR1Y2luZyBkaW1lbnNpb25hbGl0eTpcbiAqIDEpIGZpdDogZml0IHRoZSBkYXRhIHN5bmNocm9ub3VzbHlcbiAqIDIpIGZpdEFzeW5jOiBmaXQgdGhlIGRhdGEgYXN5bmNocm9ub3VzbHksIHdpdGggYSBjYWxsYmFjayBmdW5jdGlvbiBwcm92aWRlZFxuICogICAgICB0aGF0IGlzIGludm9rZWQgb24gZWFjaCBvcHRpbWl6YXRpb24gc3RlcC5cbiAqIDMpIGluaXRpYWxpemVGaXQgLyBzdGVwOiBtYW51YWxseSBpbml0aWFsaXplIHRoZSBhbGdvcml0aG0gdGhlbiBleHBsaWN0bHlcbiAqICAgICAgc3RlcCB0aHJvdWdoIGVhY2ggZXBvY2ggb2YgdGhlIFNHRCBvcHRpbWl6YXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFVNQVAge1xuICAgIGdldCBuZWlnaGJvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5OZWlnaGJvcnM7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyA9IHt9KSB7XG4gICAgICAgIHRoaXMubGVhcm5pbmdSYXRlID0gMS4wO1xuICAgICAgICB0aGlzLmxvY2FsQ29ubmVjdGl2aXR5ID0gMS4wO1xuICAgICAgICB0aGlzLm1pbkRpc3QgPSAwLjE7XG4gICAgICAgIHRoaXMubkNvbXBvbmVudHMgPSAyO1xuICAgICAgICB0aGlzLm5FcG9jaHMgPSAwO1xuICAgICAgICB0aGlzLm5OZWlnaGJvcnMgPSAxNTtcbiAgICAgICAgdGhpcy5uZWdhdGl2ZVNhbXBsZVJhdGUgPSA1O1xuICAgICAgICB0aGlzLnJhbmRvbSA9IE1hdGgucmFuZG9tO1xuICAgICAgICB0aGlzLnJlcHVsc2lvblN0cmVuZ3RoID0gMS4wO1xuICAgICAgICB0aGlzLnNldE9wTWl4UmF0aW8gPSAxLjA7XG4gICAgICAgIHRoaXMuc3ByZWFkID0gMS4wO1xuICAgICAgICB0aGlzLnRyYW5zZm9ybVF1ZXVlU2l6ZSA9IDQuMDtcbiAgICAgICAgLy8gU3VwZXJ2aXNlZCBwcm9qZWN0aW9uIHBhcmFtc1xuICAgICAgICB0aGlzLnRhcmdldE1ldHJpYyA9IFwiY2F0ZWdvcmljYWxcIiAvKiBUYXJnZXRNZXRyaWMuY2F0ZWdvcmljYWwgKi87XG4gICAgICAgIHRoaXMudGFyZ2V0V2VpZ2h0ID0gMC41O1xuICAgICAgICB0aGlzLnRhcmdldE5OZWlnaGJvcnMgPSB0aGlzLm5OZWlnaGJvcnM7XG4gICAgICAgIHRoaXMuZGlzdGFuY2VGbiA9IG51bWVyaWM7XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJwRm9yZXN0ID0gW107XG4gICAgICAgIC8vIFByb2plY3RlZCBlbWJlZGRpbmdcbiAgICAgICAgdGhpcy5lbWJlZGRpbmcgPSBbXTtcbiAgICAgICAgdGhpcy5vcHRpbWl6YXRpb25TdGF0ZSA9IG5ldyBPcHRpbWl6YXRpb25TdGF0ZSgpO1xuICAgICAgICBjb25zdCBzZXRQYXJhbSA9IChrZXkpID0+IHtcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgaWYgKHBhcmFtc1trZXldICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgdGhpc1trZXldID0gcGFyYW1zW2tleV07XG4gICAgICAgIH07XG4gICAgICAgIHNldFBhcmFtKCdkaXN0YW5jZUZuJyk7XG4gICAgICAgIHNldFBhcmFtKCdsZWFybmluZ1JhdGUnKTtcbiAgICAgICAgc2V0UGFyYW0oJ2xvY2FsQ29ubmVjdGl2aXR5Jyk7XG4gICAgICAgIHNldFBhcmFtKCdtaW5EaXN0Jyk7XG4gICAgICAgIHNldFBhcmFtKCduQ29tcG9uZW50cycpO1xuICAgICAgICBzZXRQYXJhbSgnbkVwb2NocycpO1xuICAgICAgICBzZXRQYXJhbSgnbk5laWdoYm9ycycpO1xuICAgICAgICBzZXRQYXJhbSgnbmVnYXRpdmVTYW1wbGVSYXRlJyk7XG4gICAgICAgIHNldFBhcmFtKCdyYW5kb20nKTtcbiAgICAgICAgc2V0UGFyYW0oJ3JlcHVsc2lvblN0cmVuZ3RoJyk7XG4gICAgICAgIHNldFBhcmFtKCdzZXRPcE1peFJhdGlvJyk7XG4gICAgICAgIHNldFBhcmFtKCdzcHJlYWQnKTtcbiAgICAgICAgc2V0UGFyYW0oJ3RyYW5zZm9ybVF1ZXVlU2l6ZScpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGaXQgdGhlIGRhdGEgdG8gYSBwcm9qZWN0ZWQgZW1iZWRkaW5nIHNwYWNlIHN5bmNocm9ub3VzbHkuXG4gICAgICovXG4gICAgZml0KFgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRml0KFgpO1xuICAgICAgICB0aGlzLm9wdGltaXplTGF5b3V0KCk7XG4gICAgICAgIHJldHVybiB0aGlzLmVtYmVkZGluZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogRml0IHRoZSBkYXRhIHRvIGEgcHJvamVjdGVkIGVtYmVkZGluZyBzcGFjZSBhc3luY2hyb25vdXNseSwgd2l0aCBhIGNhbGxiYWNrXG4gICAgICogZnVuY3Rpb24gaW52b2tlZCBvbiBldmVyeSBlcG9jaCBvZiBvcHRpbWl6YXRpb24uXG4gICAgICovXG4gICAgYXN5bmMgZml0QXN5bmMoWCwgY2FsbGJhY2sgPSAoKSA9PiB0cnVlKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZpdChYKTtcbiAgICAgICAgYXdhaXQgdGhpcy5vcHRpbWl6ZUxheW91dEFzeW5jKGNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW1iZWRkaW5nO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBwYXJhbWV0ZXJzIG5lZWRlZCBmb3Igc3VwZXJ2aXNlZCBwcm9qZWN0aW9uLlxuICAgICAqL1xuICAgIHNldFN1cGVydmlzZWRQcm9qZWN0aW9uKFksIHBhcmFtcyA9IHt9KSB7XG4gICAgICAgIHRoaXMuWSA9IFk7XG4gICAgICAgIHRoaXMudGFyZ2V0TWV0cmljID0gcGFyYW1zLnRhcmdldE1ldHJpYyB8fCB0aGlzLnRhcmdldE1ldHJpYztcbiAgICAgICAgdGhpcy50YXJnZXRXZWlnaHQgPSBwYXJhbXMudGFyZ2V0V2VpZ2h0IHx8IHRoaXMudGFyZ2V0V2VpZ2h0O1xuICAgICAgICB0aGlzLnRhcmdldE5OZWlnaGJvcnMgPSBwYXJhbXMudGFyZ2V0Tk5laWdoYm9ycyB8fCB0aGlzLnRhcmdldE5OZWlnaGJvcnM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIHVtYXAgd2l0aCBwcmVjb21wdXRlZCBLTk4gaW5kaWNlcyBhbmQgZGlzdGFuY2VzLlxuICAgICAqL1xuICAgIHNldFByZWNvbXB1dGVkS05OKGtubkluZGljZXMsIGtubkRpc3RhbmNlcykge1xuICAgICAgICB0aGlzLmtubkluZGljZXMgPSBrbm5JbmRpY2VzO1xuICAgICAgICB0aGlzLmtubkRpc3RhbmNlcyA9IGtubkRpc3RhbmNlcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgZml0IGJ5IGNvbXB1dGluZyBLTk4gYW5kIGEgZnV6enkgc2ltcGxpY2lhbCBzZXQsIGFzIHdlbGwgYXNcbiAgICAgKiBpbml0aWFsaXppbmcgdGhlIHByb2plY3RlZCBlbWJlZGRpbmdzLiBTZXRzIHRoZSBvcHRpbWl6YXRpb24gc3RhdGUgYWhlYWRcbiAgICAgKiBvZiBvcHRpbWl6YXRpb24gc3RlcHMuIFJldHVybnMgdGhlIG51bWJlciBvZiBlcG9jaHMgdG8gYmUgdXNlZCBmb3IgdGhlXG4gICAgICogU0dEIG9wdGltaXphdGlvbi5cbiAgICAgKi9cbiAgICBpbml0aWFsaXplRml0KFgpIHtcbiAgICAgICAgaWYgKFgubGVuZ3RoIDw9IHRoaXMubk5laWdoYm9ycykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3QgZW5vdWdoIGRhdGEgcG9pbnRzICgke1gubGVuZ3RofSkgdG8gY3JlYXRlIG5OZWlnaGJvcnM6ICR7dGhpcy5uTmVpZ2hib3JzfS4gIEFkZCBtb3JlIGRhdGEgcG9pbnRzIG9yIGFkanVzdCB0aGUgY29uZmlndXJhdGlvbi5gKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHJlaW5pdGlhbGl6ZSBpZiB3ZSd2ZSBhbHJlYWR5IGluaXRpYWxpemVkIGZvciB0aGlzIGRhdGEuXG4gICAgICAgIGlmICh0aGlzLlggPT09IFggJiYgdGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRORXBvY2hzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5YID0gWDtcbiAgICAgICAgaWYgKCF0aGlzLmtubkluZGljZXMgJiYgIXRoaXMua25uRGlzdGFuY2VzKSB7XG4gICAgICAgICAgICBjb25zdCBrbm5SZXN1bHRzID0gdGhpcy5uZWFyZXN0TmVpZ2hib3JzKFgpO1xuICAgICAgICAgICAgdGhpcy5rbm5JbmRpY2VzID0ga25uUmVzdWx0cy5rbm5JbmRpY2VzO1xuICAgICAgICAgICAgdGhpcy5rbm5EaXN0YW5jZXMgPSBrbm5SZXN1bHRzLmtubkRpc3RhbmNlcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyYXBoID0gdGhpcy5mdXp6eVNpbXBsaWNpYWxTZXQoWCwgdGhpcy5uTmVpZ2hib3JzLCB0aGlzLnNldE9wTWl4UmF0aW8pO1xuICAgICAgICAvLyBTZXQgdXAgdGhlIHNlYXJjaCBncmFwaCBmb3Igc3Vic2VxdWVudCB0cmFuc2Zvcm1hdGlvbi5cbiAgICAgICAgdGhpcy5tYWtlU2VhcmNoRm5zKCk7XG4gICAgICAgIHRoaXMuc2VhcmNoR3JhcGggPSB0aGlzLm1ha2VTZWFyY2hHcmFwaChYKTtcbiAgICAgICAgLy8gQ2hlY2sgaWYgc3VwZXJ2aXNlZCBwcm9qZWN0aW9uLCB0aGVuIGFkanVzdCB0aGUgZ3JhcGguXG4gICAgICAgIHRoaXMucHJvY2Vzc0dyYXBoRm9yU3VwZXJ2aXNlZFByb2plY3Rpb24oKTtcbiAgICAgICAgY29uc3QgeyBoZWFkLCB0YWlsLCBlcG9jaHNQZXJTYW1wbGUsIH0gPSB0aGlzLmluaXRpYWxpemVTaW1wbGljaWFsU2V0RW1iZWRkaW5nKCk7XG4gICAgICAgIC8vIFNldCB0aGUgb3B0aW1pemF0aW9uIHJvdXRpbmUgc3RhdGVcbiAgICAgICAgdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS5oZWFkID0gaGVhZDtcbiAgICAgICAgdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS50YWlsID0gdGFpbDtcbiAgICAgICAgdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS5lcG9jaHNQZXJTYW1wbGUgPSBlcG9jaHNQZXJTYW1wbGU7XG4gICAgICAgIC8vIE5vdywgaW5pdGlhbGl6ZSB0aGUgb3B0aW1pemF0aW9uIHN0ZXBzXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZU9wdGltaXphdGlvbigpO1xuICAgICAgICB0aGlzLnByZXBhcmVGb3JPcHRpbWl6YXRpb25Mb29wKCk7XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE5FcG9jaHMoKTtcbiAgICB9XG4gICAgbWFrZVNlYXJjaEZucygpIHtcbiAgICAgICAgY29uc3QgeyBpbml0RnJvbVRyZWUsIGluaXRGcm9tUmFuZG9tIH0gPSBubkRlc2NlbnQubWFrZUluaXRpYWxpemF0aW9ucyh0aGlzLmRpc3RhbmNlRm4pO1xuICAgICAgICB0aGlzLmluaXRGcm9tVHJlZSA9IGluaXRGcm9tVHJlZTtcbiAgICAgICAgdGhpcy5pbml0RnJvbVJhbmRvbSA9IGluaXRGcm9tUmFuZG9tO1xuICAgICAgICB0aGlzLnNlYXJjaCA9IG5uRGVzY2VudC5tYWtlSW5pdGlhbGl6ZWROTlNlYXJjaCh0aGlzLmRpc3RhbmNlRm4pO1xuICAgIH1cbiAgICBtYWtlU2VhcmNoR3JhcGgoWCkge1xuICAgICAgICBjb25zdCBrbm5JbmRpY2VzID0gdGhpcy5rbm5JbmRpY2VzO1xuICAgICAgICBjb25zdCBrbm5EaXN0YW5jZXMgPSB0aGlzLmtubkRpc3RhbmNlcztcbiAgICAgICAgY29uc3QgZGltcyA9IFtYLmxlbmd0aCwgWC5sZW5ndGhdO1xuICAgICAgICBjb25zdCBzZWFyY2hHcmFwaCA9IG5ldyBtYXRyaXguU3BhcnNlTWF0cml4KFtdLCBbXSwgW10sIGRpbXMpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtubkluZGljZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGtubiA9IGtubkluZGljZXNbaV07XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBrbm5EaXN0YW5jZXNbaV07XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGtubi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5laWdoYm9yID0ga25uW2pdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gZGlzdGFuY2VzW2pdO1xuICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoR3JhcGguc2V0KGksIG5laWdoYm9yLCBkaXN0YW5jZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYW5zcG9zZSA9IG1hdHJpeC50cmFuc3Bvc2Uoc2VhcmNoR3JhcGgpO1xuICAgICAgICByZXR1cm4gbWF0cml4Lm1heGltdW0oc2VhcmNoR3JhcGgsIHRyYW5zcG9zZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybXMgZGF0YSB0byB0aGUgZXhpc3RpbmcgZW1iZWRkaW5nIHNwYWNlLlxuICAgICAqL1xuICAgIHRyYW5zZm9ybSh0b1RyYW5zZm9ybSkge1xuICAgICAgICAvLyBVc2UgdGhlIHByZXZpb3VzIHJhd0RhdGFcbiAgICAgICAgY29uc3QgcmF3RGF0YSA9IHRoaXMuWDtcbiAgICAgICAgaWYgKHJhd0RhdGEgPT09IHVuZGVmaW5lZCB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBkYXRhIGhhcyBiZWVuIGZpdC4nKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbk5laWdoYm9ycyA9IE1hdGguZmxvb3IodGhpcy5uTmVpZ2hib3JzICogdGhpcy50cmFuc2Zvcm1RdWV1ZVNpemUpO1xuICAgICAgICBuTmVpZ2hib3JzID0gTWF0aC5taW4ocmF3RGF0YS5sZW5ndGgsIG5OZWlnaGJvcnMpO1xuICAgICAgICBjb25zdCBpbml0ID0gbm5EZXNjZW50LmluaXRpYWxpemVTZWFyY2godGhpcy5ycEZvcmVzdCwgcmF3RGF0YSwgdG9UcmFuc2Zvcm0sIG5OZWlnaGJvcnMsIHRoaXMuaW5pdEZyb21SYW5kb20sIHRoaXMuaW5pdEZyb21UcmVlLCB0aGlzLnJhbmRvbSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2VhcmNoKHJhd0RhdGEsIHRoaXMuc2VhcmNoR3JhcGgsIGluaXQsIHRvVHJhbnNmb3JtKTtcbiAgICAgICAgbGV0IHsgaW5kaWNlcywgd2VpZ2h0czogZGlzdGFuY2VzIH0gPSBoZWFwLmRlaGVhcFNvcnQocmVzdWx0KTtcbiAgICAgICAgaW5kaWNlcyA9IGluZGljZXMubWFwKHggPT4geC5zbGljZSgwLCB0aGlzLm5OZWlnaGJvcnMpKTtcbiAgICAgICAgZGlzdGFuY2VzID0gZGlzdGFuY2VzLm1hcCh4ID0+IHguc2xpY2UoMCwgdGhpcy5uTmVpZ2hib3JzKSk7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkTG9jYWxDb25uZWN0aXZpdHkgPSBNYXRoLm1heCgwLCB0aGlzLmxvY2FsQ29ubmVjdGl2aXR5IC0gMSk7XG4gICAgICAgIGNvbnN0IHsgc2lnbWFzLCByaG9zIH0gPSB0aGlzLnNtb290aEtOTkRpc3RhbmNlKGRpc3RhbmNlcywgdGhpcy5uTmVpZ2hib3JzLCBhZGp1c3RlZExvY2FsQ29ubmVjdGl2aXR5KTtcbiAgICAgICAgY29uc3QgeyByb3dzLCBjb2xzLCB2YWxzIH0gPSB0aGlzLmNvbXB1dGVNZW1iZXJzaGlwU3RyZW5ndGhzKGluZGljZXMsIGRpc3RhbmNlcywgc2lnbWFzLCByaG9zKTtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IFt0b1RyYW5zZm9ybS5sZW5ndGgsIHJhd0RhdGEubGVuZ3RoXTtcbiAgICAgICAgbGV0IGdyYXBoID0gbmV3IG1hdHJpeC5TcGFyc2VNYXRyaXgocm93cywgY29scywgdmFscywgc2l6ZSk7XG4gICAgICAgIC8vIFRoaXMgd2FzIGEgdmVyeSBzcGVjaWFsbHkgY29uc3RydWN0ZWQgZ3JhcGggd2l0aCBjb25zdGFudCBkZWdyZWUuXG4gICAgICAgIC8vIFRoYXQgbGV0cyB1cyBkbyBmYW5jeSB1bnBhY2tpbmcgYnkgcmVzaGFwaW5nIHRoZSBjc3IgbWF0cml4IGluZGljZXNcbiAgICAgICAgLy8gYW5kIGRhdGEuIERvaW5nIHNvIHJlbGllcyBvbiB0aGUgY29uc3RhbnQgZGVncmVlIGFzc3VtcHRpb24hXG4gICAgICAgIGNvbnN0IG5vcm1lZCA9IG1hdHJpeC5ub3JtYWxpemUoZ3JhcGgsIFwibDFcIiAvKiBtYXRyaXguTm9ybVR5cGUubDEgKi8pO1xuICAgICAgICBjb25zdCBjc3JNYXRyaXggPSBtYXRyaXguZ2V0Q1NSKG5vcm1lZCk7XG4gICAgICAgIGNvbnN0IG5Qb2ludHMgPSB0b1RyYW5zZm9ybS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGVJbmRpY2VzID0gdXRpbHMucmVzaGFwZTJkKGNzck1hdHJpeC5pbmRpY2VzLCBuUG9pbnRzLCB0aGlzLm5OZWlnaGJvcnMpO1xuICAgICAgICBjb25zdCBlV2VpZ2h0cyA9IHV0aWxzLnJlc2hhcGUyZChjc3JNYXRyaXgudmFsdWVzLCBuUG9pbnRzLCB0aGlzLm5OZWlnaGJvcnMpO1xuICAgICAgICBjb25zdCBlbWJlZGRpbmcgPSBpbml0VHJhbnNmb3JtKGVJbmRpY2VzLCBlV2VpZ2h0cywgdGhpcy5lbWJlZGRpbmcpO1xuICAgICAgICBjb25zdCBuRXBvY2hzID0gdGhpcy5uRXBvY2hzXG4gICAgICAgICAgICA/IHRoaXMubkVwb2NocyAvIDNcbiAgICAgICAgICAgIDogZ3JhcGgublJvd3MgPD0gMTAwMDBcbiAgICAgICAgICAgICAgICA/IDEwMFxuICAgICAgICAgICAgICAgIDogMzA7XG4gICAgICAgIGNvbnN0IGdyYXBoTWF4ID0gZ3JhcGhcbiAgICAgICAgICAgIC5nZXRWYWx1ZXMoKVxuICAgICAgICAgICAgLnJlZHVjZSgobWF4LCB2YWwpID0+ICh2YWwgPiBtYXggPyB2YWwgOiBtYXgpLCAwKTtcbiAgICAgICAgZ3JhcGggPSBncmFwaC5tYXAodmFsdWUgPT4gKHZhbHVlIDwgZ3JhcGhNYXggLyBuRXBvY2hzID8gMCA6IHZhbHVlKSk7XG4gICAgICAgIGdyYXBoID0gbWF0cml4LmVsaW1pbmF0ZVplcm9zKGdyYXBoKTtcbiAgICAgICAgY29uc3QgZXBvY2hzUGVyU2FtcGxlID0gdGhpcy5tYWtlRXBvY2hzUGVyU2FtcGxlKGdyYXBoLmdldFZhbHVlcygpLCBuRXBvY2hzKTtcbiAgICAgICAgY29uc3QgaGVhZCA9IGdyYXBoLmdldFJvd3MoKTtcbiAgICAgICAgY29uc3QgdGFpbCA9IGdyYXBoLmdldENvbHMoKTtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBvcHRpbWl6YXRpb24gc2xpZ2h0bHkgZGlmZmVyZW50bHkgdGhhbiB0aGUgZml0IG1ldGhvZC5cbiAgICAgICAgdGhpcy5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnMoe1xuICAgICAgICAgICAgaGVhZEVtYmVkZGluZzogZW1iZWRkaW5nLFxuICAgICAgICAgICAgdGFpbEVtYmVkZGluZzogdGhpcy5lbWJlZGRpbmcsXG4gICAgICAgICAgICBoZWFkLFxuICAgICAgICAgICAgdGFpbCxcbiAgICAgICAgICAgIGN1cnJlbnRFcG9jaDogMCxcbiAgICAgICAgICAgIG5FcG9jaHMsXG4gICAgICAgICAgICBuVmVydGljZXM6IGdyYXBoLmdldERpbXMoKVsxXSxcbiAgICAgICAgICAgIGVwb2Noc1BlclNhbXBsZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJlcGFyZUZvck9wdGltaXphdGlvbkxvb3AoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW1pemVMYXlvdXQoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHdlJ3JlIHVzaW5nIHN1cGVydmlzZWQgcHJvamVjdGlvbiwgdGhlbiBwcm9jZXNzIHRoZSBncmFwaFxuICAgICAqIGFjY29yZGluZ2x5LlxuICAgICAqL1xuICAgIHByb2Nlc3NHcmFwaEZvclN1cGVydmlzZWRQcm9qZWN0aW9uKCkge1xuICAgICAgICBjb25zdCB7IFksIFggfSA9IHRoaXM7XG4gICAgICAgIGlmIChZKSB7XG4gICAgICAgICAgICBpZiAoWS5sZW5ndGggIT09IFgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdMZW5ndGggb2YgWCBhbmQgeSBtdXN0IGJlIGVxdWFsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy50YXJnZXRNZXRyaWMgPT09IFwiY2F0ZWdvcmljYWxcIiAvKiBUYXJnZXRNZXRyaWMuY2F0ZWdvcmljYWwgKi8pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsdCA9IHRoaXMudGFyZ2V0V2VpZ2h0IDwgMS4wO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhckRpc3QgPSBsdCA/IDIuNSAqICgxLjAgLyAoMS4wIC0gdGhpcy50YXJnZXRXZWlnaHQpKSA6IDEuMGUxMjtcbiAgICAgICAgICAgICAgICB0aGlzLmdyYXBoID0gdGhpcy5jYXRlZ29yaWNhbFNpbXBsaWNpYWxTZXRJbnRlcnNlY3Rpb24odGhpcy5ncmFwaCwgWSwgZmFyRGlzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPIChhbmR5Y29lbmVuQCk6IGFkZCBub24tY2F0ZWdvcmljYWwgc3VwZXJ2aXNlZCBlbWJlZGRpbmdzLlxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hbnVhbGx5IHN0ZXAgdGhyb3VnaCB0aGUgb3B0aW1pemF0aW9uIHByb2Nlc3Mgb25lIGVwb2NoIGF0IGEgdGltZS5cbiAgICAgKi9cbiAgICBzdGVwKCkge1xuICAgICAgICBjb25zdCB7IGN1cnJlbnRFcG9jaCB9ID0gdGhpcy5vcHRpbWl6YXRpb25TdGF0ZTtcbiAgICAgICAgaWYgKGN1cnJlbnRFcG9jaCA8IHRoaXMuZ2V0TkVwb2NocygpKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGltaXplTGF5b3V0U3RlcChjdXJyZW50RXBvY2gpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY29tcHV0ZWQgcHJvamVjdGVkIGVtYmVkZGluZy5cbiAgICAgKi9cbiAgICBnZXRFbWJlZGRpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVtYmVkZGluZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29tcHV0ZSB0aGUgYGBuTmVpZ2hib3JzYGAgbmVhcmVzdCBwb2ludHMgZm9yIGVhY2ggZGF0YSBwb2ludCBpbiBgYFhgYFxuICAgICAqIFRoaXMgbWF5IGJlIGV4YWN0LCBidXQgbW9yZSBsaWtlbHkgaXMgYXBwcm94aW1hdGVkIHZpYSBuZWFyZXN0IG5laWdoYm9yXG4gICAgICogZGVzY2VudC5cbiAgICAgKi9cbiAgICBuZWFyZXN0TmVpZ2hib3JzKFgpIHtcbiAgICAgICAgY29uc3QgeyBkaXN0YW5jZUZuLCBuTmVpZ2hib3JzIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBsb2cyID0gKG4pID0+IE1hdGgubG9nKG4pIC8gTWF0aC5sb2coMik7XG4gICAgICAgIGNvbnN0IG1ldHJpY05ORGVzY2VudCA9IG5uRGVzY2VudC5tYWtlTk5EZXNjZW50KGRpc3RhbmNlRm4sIHRoaXMucmFuZG9tKTtcbiAgICAgICAgLy8gSGFuZGxlIHB5dGhvbjMgcm91bmRpbmcgZG93biBmcm9tIDAuNSBkaXNjcnBhbmN5XG4gICAgICAgIGNvbnN0IHJvdW5kID0gKG4pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuID09PSAwLjUgPyAwIDogTWF0aC5yb3VuZChuKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgblRyZWVzID0gNSArIE1hdGguZmxvb3Iocm91bmQoWC5sZW5ndGggKiogMC41IC8gMjAuMCkpO1xuICAgICAgICBjb25zdCBuSXRlcnMgPSBNYXRoLm1heCg1LCBNYXRoLmZsb29yKE1hdGgucm91bmQobG9nMihYLmxlbmd0aCkpKSk7XG4gICAgICAgIHRoaXMucnBGb3Jlc3QgPSB0cmVlLm1ha2VGb3Jlc3QoWCwgbk5laWdoYm9ycywgblRyZWVzLCB0aGlzLnJhbmRvbSk7XG4gICAgICAgIGNvbnN0IGxlYWZBcnJheSA9IHRyZWUubWFrZUxlYWZBcnJheSh0aGlzLnJwRm9yZXN0KTtcbiAgICAgICAgY29uc3QgeyBpbmRpY2VzLCB3ZWlnaHRzIH0gPSBtZXRyaWNOTkRlc2NlbnQoWCwgbGVhZkFycmF5LCBuTmVpZ2hib3JzLCBuSXRlcnMpO1xuICAgICAgICByZXR1cm4geyBrbm5JbmRpY2VzOiBpbmRpY2VzLCBrbm5EaXN0YW5jZXM6IHdlaWdodHMgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBzZXQgb2YgZGF0YSBYLCBhIG5laWdoYm9yaG9vZCBzaXplLCBhbmQgYSBtZWFzdXJlIG9mIGRpc3RhbmNlXG4gICAgICogY29tcHV0ZSB0aGUgZnV6enkgc2ltcGxpY2lhbCBzZXQgKGhlcmUgcmVwcmVzZW50ZWQgYXMgYSBmdXp6eSBncmFwaCBpblxuICAgICAqIHRoZSBmb3JtIG9mIGEgc3BhcnNlIG1hdHJpeCkgYXNzb2NpYXRlZCB0byB0aGUgZGF0YS4gVGhpcyBpcyBkb25lIGJ5XG4gICAgICogbG9jYWxseSBhcHByb3hpbWF0aW5nIGdlb2Rlc2ljIGRpc3RhbmNlIGF0IGVhY2ggcG9pbnQsIGNyZWF0aW5nIGEgZnV6enlcbiAgICAgKiBzaW1wbGljaWFsIHNldCBmb3IgZWFjaCBzdWNoIHBvaW50LCBhbmQgdGhlbiBjb21iaW5pbmcgYWxsIHRoZSBsb2NhbFxuICAgICAqIGZ1enp5IHNpbXBsaWNpYWwgc2V0cyBpbnRvIGEgZ2xvYmFsIG9uZSB2aWEgYSBmdXp6eSB1bmlvbi5cbiAgICAgKi9cbiAgICBmdXp6eVNpbXBsaWNpYWxTZXQoWCwgbk5laWdoYm9ycywgc2V0T3BNaXhSYXRpbyA9IDEuMCkge1xuICAgICAgICBjb25zdCB7IGtubkluZGljZXMgPSBbXSwga25uRGlzdGFuY2VzID0gW10sIGxvY2FsQ29ubmVjdGl2aXR5IH0gPSB0aGlzO1xuICAgICAgICBjb25zdCB7IHNpZ21hcywgcmhvcyB9ID0gdGhpcy5zbW9vdGhLTk5EaXN0YW5jZShrbm5EaXN0YW5jZXMsIG5OZWlnaGJvcnMsIGxvY2FsQ29ubmVjdGl2aXR5KTtcbiAgICAgICAgY29uc3QgeyByb3dzLCBjb2xzLCB2YWxzIH0gPSB0aGlzLmNvbXB1dGVNZW1iZXJzaGlwU3RyZW5ndGhzKGtubkluZGljZXMsIGtubkRpc3RhbmNlcywgc2lnbWFzLCByaG9zKTtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IFtYLmxlbmd0aCwgWC5sZW5ndGhdO1xuICAgICAgICBjb25zdCBzcGFyc2VNYXRyaXggPSBuZXcgbWF0cml4LlNwYXJzZU1hdHJpeChyb3dzLCBjb2xzLCB2YWxzLCBzaXplKTtcbiAgICAgICAgY29uc3QgdHJhbnNwb3NlID0gbWF0cml4LnRyYW5zcG9zZShzcGFyc2VNYXRyaXgpO1xuICAgICAgICBjb25zdCBwcm9kTWF0cml4ID0gbWF0cml4LnBhaXJ3aXNlTXVsdGlwbHkoc3BhcnNlTWF0cml4LCB0cmFuc3Bvc2UpO1xuICAgICAgICBjb25zdCBhID0gbWF0cml4LnN1YnRyYWN0KG1hdHJpeC5hZGQoc3BhcnNlTWF0cml4LCB0cmFuc3Bvc2UpLCBwcm9kTWF0cml4KTtcbiAgICAgICAgY29uc3QgYiA9IG1hdHJpeC5tdWx0aXBseVNjYWxhcihhLCBzZXRPcE1peFJhdGlvKTtcbiAgICAgICAgY29uc3QgYyA9IG1hdHJpeC5tdWx0aXBseVNjYWxhcihwcm9kTWF0cml4LCAxLjAgLSBzZXRPcE1peFJhdGlvKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbWF0cml4LmFkZChiLCBjKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29tYmluZSBhIGZ1enp5IHNpbXBsaWNpYWwgc2V0IHdpdGggYW5vdGhlciBmdXp6eSBzaW1wbGljaWFsIHNldFxuICAgICAqIGdlbmVyYXRlZCBmcm9tIGNhdGVnb3JpY2FsIGRhdGEgdXNpbmcgY2F0ZWdvcmljYWwgZGlzdGFuY2VzLiBUaGUgdGFyZ2V0XG4gICAgICogZGF0YSBpcyBhc3N1bWVkIHRvIGJlIGNhdGVnb3JpY2FsIGxhYmVsIGRhdGEgKGEgdmVjdG9yIG9mIGxhYmVscyksXG4gICAgICogYW5kIHRoaXMgd2lsbCB1cGRhdGUgdGhlIGZ1enp5IHNpbXBsaWNpYWwgc2V0IHRvIHJlc3BlY3QgdGhhdCBsYWJlbCBkYXRhLlxuICAgICAqL1xuICAgIGNhdGVnb3JpY2FsU2ltcGxpY2lhbFNldEludGVyc2VjdGlvbihzaW1wbGljaWFsU2V0LCB0YXJnZXQsIGZhckRpc3QsIHVua25vd25EaXN0ID0gMS4wKSB7XG4gICAgICAgIGxldCBpbnRlcnNlY3Rpb24gPSBmYXN0SW50ZXJzZWN0aW9uKHNpbXBsaWNpYWxTZXQsIHRhcmdldCwgdW5rbm93bkRpc3QsIGZhckRpc3QpO1xuICAgICAgICBpbnRlcnNlY3Rpb24gPSBtYXRyaXguZWxpbWluYXRlWmVyb3MoaW50ZXJzZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIHJlc2V0TG9jYWxDb25uZWN0aXZpdHkoaW50ZXJzZWN0aW9uKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29tcHV0ZSBhIGNvbnRpbnVvdXMgdmVyc2lvbiBvZiB0aGUgZGlzdGFuY2UgdG8gdGhlIGt0aCBuZWFyZXN0XG4gICAgICogbmVpZ2hib3IuIFRoYXQgaXMsIHRoaXMgaXMgc2ltaWxhciB0byBrbm4tZGlzdGFuY2UgYnV0IGFsbG93cyBjb250aW51b3VzXG4gICAgICogayB2YWx1ZXMgcmF0aGVyIHRoYW4gcmVxdWlyaW5nIGFuIGludGVncmFsIGsuIEluIGVzc2NlbmNlIHdlIGFyZSBzaW1wbHlcbiAgICAgKiBjb21wdXRpbmcgdGhlIGRpc3RhbmNlIHN1Y2ggdGhhdCB0aGUgY2FyZGluYWxpdHkgb2YgZnV6enkgc2V0IHdlIGdlbmVyYXRlXG4gICAgICogaXMgay5cbiAgICAgKi9cbiAgICBzbW9vdGhLTk5EaXN0YW5jZShkaXN0YW5jZXMsIGssIGxvY2FsQ29ubmVjdGl2aXR5ID0gMS4wLCBuSXRlciA9IDY0LCBiYW5kd2lkdGggPSAxLjApIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gKE1hdGgubG9nKGspIC8gTWF0aC5sb2coMikpICogYmFuZHdpZHRoO1xuICAgICAgICBjb25zdCByaG8gPSB1dGlscy56ZXJvcyhkaXN0YW5jZXMubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuemVyb3MoZGlzdGFuY2VzLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlzdGFuY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgbG8gPSAwLjA7XG4gICAgICAgICAgICBsZXQgaGkgPSBJbmZpbml0eTtcbiAgICAgICAgICAgIGxldCBtaWQgPSAxLjA7XG4gICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIHZlcnkgaW5lZmZpY2llbnQsIGJ1dCB3aWxsIGRvIGZvciBub3cuIEZJWE1FXG4gICAgICAgICAgICBjb25zdCBpdGhEaXN0YW5jZXMgPSBkaXN0YW5jZXNbaV07XG4gICAgICAgICAgICBjb25zdCBub25aZXJvRGlzdHMgPSBpdGhEaXN0YW5jZXMuZmlsdGVyKGQgPT4gZCA+IDAuMCk7XG4gICAgICAgICAgICBpZiAobm9uWmVyb0Rpc3RzLmxlbmd0aCA+PSBsb2NhbENvbm5lY3Rpdml0eSkge1xuICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IE1hdGguZmxvb3IobG9jYWxDb25uZWN0aXZpdHkpO1xuICAgICAgICAgICAgICAgIGxldCBpbnRlcnBvbGF0aW9uID0gbG9jYWxDb25uZWN0aXZpdHkgLSBpbmRleDtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJob1tpXSA9IG5vblplcm9EaXN0c1tpbmRleCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJwb2xhdGlvbiA+IFNNT09USF9LX1RPTEVSQU5DRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmhvW2ldICs9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJwb2xhdGlvbiAqIChub25aZXJvRGlzdHNbaW5kZXhdIC0gbm9uWmVyb0Rpc3RzW2luZGV4IC0gMV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByaG9baV0gPSBpbnRlcnBvbGF0aW9uICogbm9uWmVyb0Rpc3RzWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5vblplcm9EaXN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmhvW2ldID0gdXRpbHMubWF4KG5vblplcm9EaXN0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IG5JdGVyOyBuKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgcHN1bSA9IDAuMDtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8IGRpc3RhbmNlc1tpXS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gZGlzdGFuY2VzW2ldW2pdIC0gcmhvW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBzdW0gKz0gTWF0aC5leHAoLShkIC8gbWlkKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwc3VtICs9IDEuMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMocHN1bSAtIHRhcmdldCkgPCBTTU9PVEhfS19UT0xFUkFOQ0UpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwc3VtID4gdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGhpID0gbWlkO1xuICAgICAgICAgICAgICAgICAgICBtaWQgPSAobG8gKyBoaSkgLyAyLjA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsbyA9IG1pZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhpID09PSBJbmZpbml0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWlkICo9IDI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaWQgPSAobG8gKyBoaSkgLyAyLjA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRbaV0gPSBtaWQ7XG4gICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIHZlcnkgaW5lZmZpY2llbnQsIGJ1dCB3aWxsIGRvIGZvciBub3cuIEZJWE1FXG4gICAgICAgICAgICBpZiAocmhvW2ldID4gMC4wKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVhbkl0aERpc3RhbmNlcyA9IHV0aWxzLm1lYW4oaXRoRGlzdGFuY2VzKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0W2ldIDwgTUlOX0tfRElTVF9TQ0FMRSAqIG1lYW5JdGhEaXN0YW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2ldID0gTUlOX0tfRElTVF9TQ0FMRSAqIG1lYW5JdGhEaXN0YW5jZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVhbkRpc3RhbmNlcyA9IHV0aWxzLm1lYW4oZGlzdGFuY2VzLm1hcCh1dGlscy5tZWFuKSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdFtpXSA8IE1JTl9LX0RJU1RfU0NBTEUgKiBtZWFuRGlzdGFuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtpXSA9IE1JTl9LX0RJU1RfU0NBTEUgKiBtZWFuRGlzdGFuY2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzaWdtYXM6IHJlc3VsdCwgcmhvczogcmhvIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCB0aGUgbWVtYmVyc2hpcCBzdHJlbmd0aCBkYXRhIGZvciB0aGUgMS1za2VsZXRvbiBvZiBlYWNoIGxvY2FsXG4gICAgICogZnV6enkgc2ltcGxpY2lhbCBzZXQgLS0gdGhpcyBpcyBmb3JtZWQgYXMgYSBzcGFyc2UgbWF0cml4IHdoZXJlIGVhY2ggcm93IGlzXG4gICAgICogYSBsb2NhbCBmdXp6eSBzaW1wbGljaWFsIHNldCwgd2l0aCBhIG1lbWJlcnNoaXAgc3RyZW5ndGggZm9yIHRoZVxuICAgICAqIDEtc2ltcGxleCB0byBlYWNoIG90aGVyIGRhdGEgcG9pbnQuXG4gICAgICovXG4gICAgY29tcHV0ZU1lbWJlcnNoaXBTdHJlbmd0aHMoa25uSW5kaWNlcywga25uRGlzdGFuY2VzLCBzaWdtYXMsIHJob3MpIHtcbiAgICAgICAgY29uc3QgblNhbXBsZXMgPSBrbm5JbmRpY2VzLmxlbmd0aDtcbiAgICAgICAgY29uc3Qgbk5laWdoYm9ycyA9IGtubkluZGljZXNbMF0ubGVuZ3RoO1xuICAgICAgICBjb25zdCByb3dzID0gdXRpbHMuemVyb3MoblNhbXBsZXMgKiBuTmVpZ2hib3JzKTtcbiAgICAgICAgY29uc3QgY29scyA9IHV0aWxzLnplcm9zKG5TYW1wbGVzICogbk5laWdoYm9ycyk7XG4gICAgICAgIGNvbnN0IHZhbHMgPSB1dGlscy56ZXJvcyhuU2FtcGxlcyAqIG5OZWlnaGJvcnMpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5TYW1wbGVzOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbk5laWdoYm9yczsgaisrKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKGtubkluZGljZXNbaV1bal0gPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBXZSBkaWRuJ3QgZ2V0IHRoZSBmdWxsIGtubiBmb3IgaVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoa25uSW5kaWNlc1tpXVtqXSA9PT0gaSkge1xuICAgICAgICAgICAgICAgICAgICB2YWwgPSAwLjA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtubkRpc3RhbmNlc1tpXVtqXSAtIHJob3NbaV0gPD0gMC4wKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IDEuMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IE1hdGguZXhwKC0oKGtubkRpc3RhbmNlc1tpXVtqXSAtIHJob3NbaV0pIC8gc2lnbWFzW2ldKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJvd3NbaSAqIG5OZWlnaGJvcnMgKyBqXSA9IGk7XG4gICAgICAgICAgICAgICAgY29sc1tpICogbk5laWdoYm9ycyArIGpdID0ga25uSW5kaWNlc1tpXVtqXTtcbiAgICAgICAgICAgICAgICB2YWxzW2kgKiBuTmVpZ2hib3JzICsgal0gPSB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcm93cywgY29scywgdmFscyB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIGEgZnV6enkgc2ltcGxpY2lhbCBzZXQgZW1iZWRkaW5nLCB1c2luZyBhIHNwZWNpZmllZFxuICAgICAqIGluaXRpYWxpc2F0aW9uIG1ldGhvZCBhbmQgdGhlbiBtaW5pbWl6aW5nIHRoZSBmdXp6eSBzZXQgY3Jvc3MgZW50cm9weVxuICAgICAqIGJldHdlZW4gdGhlIDEtc2tlbGV0b25zIG9mIHRoZSBoaWdoIGFuZCBsb3cgZGltZW5zaW9uYWwgZnV6enkgc2ltcGxpY2lhbFxuICAgICAqIHNldHMuXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZVNpbXBsaWNpYWxTZXRFbWJlZGRpbmcoKSB7XG4gICAgICAgIGNvbnN0IG5FcG9jaHMgPSB0aGlzLmdldE5FcG9jaHMoKTtcbiAgICAgICAgY29uc3QgeyBuQ29tcG9uZW50cyB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgZ3JhcGhWYWx1ZXMgPSB0aGlzLmdyYXBoLmdldFZhbHVlcygpO1xuICAgICAgICBsZXQgZ3JhcGhNYXggPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyYXBoVmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdyYXBoVmFsdWVzW2ldO1xuICAgICAgICAgICAgaWYgKGdyYXBoTWF4IDwgZ3JhcGhWYWx1ZXNbaV0pIHtcbiAgICAgICAgICAgICAgICBncmFwaE1heCA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGdyYXBoID0gdGhpcy5ncmFwaC5tYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlIDwgZ3JhcGhNYXggLyBuRXBvY2hzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBXZSdyZSBub3QgY29tcHV0aW5nIHRoZSBzcGVjdHJhbCBpbml0aWFsaXphdGlvbiBpbiB0aGlzIGltcGxlbWVudGF0aW9uXG4gICAgICAgIC8vIHVudGlsIHdlIGRldGVybWluZSBhIGJldHRlciBlaWdlbnZhbHVlL2VpZ2VudmVjdG9yIGNvbXB1dGF0aW9uXG4gICAgICAgIC8vIGFwcHJvYWNoXG4gICAgICAgIHRoaXMuZW1iZWRkaW5nID0gdXRpbHMuemVyb3MoZ3JhcGgublJvd3MpLm1hcCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdXRpbHMuemVyb3MobkNvbXBvbmVudHMpLm1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHV0aWxzLnRhdVJhbmQodGhpcy5yYW5kb20pICogMjAgKyAtMTA7IC8vIFJhbmRvbSBmcm9tIC0xMCB0byAxMFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBHZXQgZ3JhcGggZGF0YSBpbiBvcmRlcmVkIHdheS4uLlxuICAgICAgICBjb25zdCB3ZWlnaHRzID0gW107XG4gICAgICAgIGNvbnN0IGhlYWQgPSBbXTtcbiAgICAgICAgY29uc3QgdGFpbCA9IFtdO1xuICAgICAgICBjb25zdCByb3dDb2xWYWx1ZXMgPSBncmFwaC5nZXRBbGwoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dDb2xWYWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gcm93Q29sVmFsdWVzW2ldO1xuICAgICAgICAgICAgaWYgKGVudHJ5LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgd2VpZ2h0cy5wdXNoKGVudHJ5LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB0YWlsLnB1c2goZW50cnkucm93KTtcbiAgICAgICAgICAgICAgICBoZWFkLnB1c2goZW50cnkuY29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcG9jaHNQZXJTYW1wbGUgPSB0aGlzLm1ha2VFcG9jaHNQZXJTYW1wbGUod2VpZ2h0cywgbkVwb2Nocyk7XG4gICAgICAgIHJldHVybiB7IGhlYWQsIHRhaWwsIGVwb2Noc1BlclNhbXBsZSB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHaXZlbiBhIHNldCBvZiB3ZWlnaHRzIGFuZCBudW1iZXIgb2YgZXBvY2hzIGdlbmVyYXRlIHRoZSBudW1iZXIgb2ZcbiAgICAgKiBlcG9jaHMgcGVyIHNhbXBsZSBmb3IgZWFjaCB3ZWlnaHQuXG4gICAgICovXG4gICAgbWFrZUVwb2Noc1BlclNhbXBsZSh3ZWlnaHRzLCBuRXBvY2hzKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLmZpbGxlZCh3ZWlnaHRzLmxlbmd0aCwgLTEuMCk7XG4gICAgICAgIGNvbnN0IG1heCA9IHV0aWxzLm1heCh3ZWlnaHRzKTtcbiAgICAgICAgY29uc3QgblNhbXBsZXMgPSB3ZWlnaHRzLm1hcCh3ID0+ICh3IC8gbWF4KSAqIG5FcG9jaHMpO1xuICAgICAgICBuU2FtcGxlcy5mb3JFYWNoKChuLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAobiA+IDApXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ldID0gbkVwb2NocyAvIG5TYW1wbGVzW2ldO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXNzaWducyBvcHRpbWl6YXRpb24gc3RhdGUgcGFyYW1ldGVycyBmcm9tIGEgcGFydGlhbCBvcHRpbWl6YXRpb24gc3RhdGUuXG4gICAgICovXG4gICAgYXNzaWduT3B0aW1pemF0aW9uU3RhdGVQYXJhbWV0ZXJzKHN0YXRlKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpbWl6YXRpb25TdGF0ZSwgc3RhdGUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgZmV3IG9wdGltaXphdGlvbiBzdGF0ZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIG5lY2Vzc2FyeSBiZWZvcmUgZW50ZXJpbmdcbiAgICAgKiB0aGUgb3B0aW1pemF0aW9uIHN0ZXAgbG9vcC5cbiAgICAgKi9cbiAgICBwcmVwYXJlRm9yT3B0aW1pemF0aW9uTG9vcCgpIHtcbiAgICAgICAgLy8gSHlwZXJwYXJhbWV0ZXJzXG4gICAgICAgIGNvbnN0IHsgcmVwdWxzaW9uU3RyZW5ndGgsIGxlYXJuaW5nUmF0ZSwgbmVnYXRpdmVTYW1wbGVSYXRlIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCB7IGVwb2Noc1BlclNhbXBsZSwgaGVhZEVtYmVkZGluZywgdGFpbEVtYmVkZGluZywgfSA9IHRoaXMub3B0aW1pemF0aW9uU3RhdGU7XG4gICAgICAgIGNvbnN0IGRpbSA9IGhlYWRFbWJlZGRpbmdbMF0ubGVuZ3RoO1xuICAgICAgICBjb25zdCBtb3ZlT3RoZXIgPSBoZWFkRW1iZWRkaW5nLmxlbmd0aCA9PT0gdGFpbEVtYmVkZGluZy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlID0gZXBvY2hzUGVyU2FtcGxlLm1hcChlID0+IGUgLyBuZWdhdGl2ZVNhbXBsZVJhdGUpO1xuICAgICAgICBjb25zdCBlcG9jaE9mTmV4dE5lZ2F0aXZlU2FtcGxlID0gWy4uLmVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlXTtcbiAgICAgICAgY29uc3QgZXBvY2hPZk5leHRTYW1wbGUgPSBbLi4uZXBvY2hzUGVyU2FtcGxlXTtcbiAgICAgICAgdGhpcy5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnMoe1xuICAgICAgICAgICAgZXBvY2hPZk5leHRTYW1wbGUsXG4gICAgICAgICAgICBlcG9jaE9mTmV4dE5lZ2F0aXZlU2FtcGxlLFxuICAgICAgICAgICAgZXBvY2hzUGVyTmVnYXRpdmVTYW1wbGUsXG4gICAgICAgICAgICBtb3ZlT3RoZXIsXG4gICAgICAgICAgICBpbml0aWFsQWxwaGE6IGxlYXJuaW5nUmF0ZSxcbiAgICAgICAgICAgIGFscGhhOiBsZWFybmluZ1JhdGUsXG4gICAgICAgICAgICBnYW1tYTogcmVwdWxzaW9uU3RyZW5ndGgsXG4gICAgICAgICAgICBkaW0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBvcHRpbWl6YXRpb24gc3RhdGUgZm9yIHN0ZXB3aXNlIG9wdGltaXphdGlvbi5cbiAgICAgKi9cbiAgICBpbml0aWFsaXplT3B0aW1pemF0aW9uKCkge1xuICAgICAgICAvLyBBbGdvcml0aG0gc3RhdGVcbiAgICAgICAgY29uc3QgaGVhZEVtYmVkZGluZyA9IHRoaXMuZW1iZWRkaW5nO1xuICAgICAgICBjb25zdCB0YWlsRW1iZWRkaW5nID0gdGhpcy5lbWJlZGRpbmc7XG4gICAgICAgIC8vIEluaXRpYWxpemVkIGluIGluaXRpYWxpemVTaW1wbGljaWFsU2V0RW1iZWRkaW5nKClcbiAgICAgICAgY29uc3QgeyBoZWFkLCB0YWlsLCBlcG9jaHNQZXJTYW1wbGUgfSA9IHRoaXMub3B0aW1pemF0aW9uU3RhdGU7XG4gICAgICAgIGNvbnN0IG5FcG9jaHMgPSB0aGlzLmdldE5FcG9jaHMoKTtcbiAgICAgICAgY29uc3QgblZlcnRpY2VzID0gdGhpcy5ncmFwaC5uQ29scztcbiAgICAgICAgY29uc3QgeyBhLCBiIH0gPSBmaW5kQUJQYXJhbXModGhpcy5zcHJlYWQsIHRoaXMubWluRGlzdCk7XG4gICAgICAgIHRoaXMuYXNzaWduT3B0aW1pemF0aW9uU3RhdGVQYXJhbWV0ZXJzKHtcbiAgICAgICAgICAgIGhlYWRFbWJlZGRpbmcsXG4gICAgICAgICAgICB0YWlsRW1iZWRkaW5nLFxuICAgICAgICAgICAgaGVhZCxcbiAgICAgICAgICAgIHRhaWwsXG4gICAgICAgICAgICBlcG9jaHNQZXJTYW1wbGUsXG4gICAgICAgICAgICBhLFxuICAgICAgICAgICAgYixcbiAgICAgICAgICAgIG5FcG9jaHMsXG4gICAgICAgICAgICBuVmVydGljZXMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbXByb3ZlIGFuIGVtYmVkZGluZyB1c2luZyBzdG9jaGFzdGljIGdyYWRpZW50IGRlc2NlbnQgdG8gbWluaW1pemUgdGhlXG4gICAgICogZnV6enkgc2V0IGNyb3NzIGVudHJvcHkgYmV0d2VlbiB0aGUgMS1za2VsZXRvbnMgb2YgdGhlIGhpZ2ggZGltZW5zaW9uYWxcbiAgICAgKiBhbmQgbG93IGRpbWVuc2lvbmFsIGZ1enp5IHNpbXBsaWNpYWwgc2V0cy4gSW4gcHJhY3RpY2UgdGhpcyBpcyBkb25lIGJ5XG4gICAgICogc2FtcGxpbmcgZWRnZXMgYmFzZWQgb24gdGhlaXIgbWVtYmVyc2hpcCBzdHJlbmd0aCAod2l0aCB0aGUgKDEtcCkgdGVybXNcbiAgICAgKiBjb21pbmcgZnJvbSBuZWdhdGl2ZSBzYW1wbGluZyBzaW1pbGFyIHRvIHdvcmQydmVjKS5cbiAgICAgKi9cbiAgICBvcHRpbWl6ZUxheW91dFN0ZXAobikge1xuICAgICAgICBjb25zdCB7IG9wdGltaXphdGlvblN0YXRlIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCB7IGhlYWQsIHRhaWwsIGhlYWRFbWJlZGRpbmcsIHRhaWxFbWJlZGRpbmcsIGVwb2Noc1BlclNhbXBsZSwgZXBvY2hPZk5leHRTYW1wbGUsIGVwb2NoT2ZOZXh0TmVnYXRpdmVTYW1wbGUsIGVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlLCBtb3ZlT3RoZXIsIGluaXRpYWxBbHBoYSwgYWxwaGEsIGdhbW1hLCBhLCBiLCBkaW0sIG5FcG9jaHMsIG5WZXJ0aWNlcywgfSA9IG9wdGltaXphdGlvblN0YXRlO1xuICAgICAgICBjb25zdCBjbGlwVmFsdWUgPSA0LjA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXBvY2hzUGVyU2FtcGxlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZXBvY2hPZk5leHRTYW1wbGVbaV0gPiBuKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqID0gaGVhZFtpXTtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0YWlsW2ldO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGhlYWRFbWJlZGRpbmdbal07XG4gICAgICAgICAgICBjb25zdCBvdGhlciA9IHRhaWxFbWJlZGRpbmdba107XG4gICAgICAgICAgICBjb25zdCBkaXN0U3F1YXJlZCA9IHJEaXN0KGN1cnJlbnQsIG90aGVyKTtcbiAgICAgICAgICAgIGxldCBncmFkQ29lZmYgPSAwO1xuICAgICAgICAgICAgaWYgKGRpc3RTcXVhcmVkID4gMCkge1xuICAgICAgICAgICAgICAgIGdyYWRDb2VmZiA9IC0yLjAgKiBhICogYiAqIE1hdGgucG93KGRpc3RTcXVhcmVkLCBiIC0gMS4wKTtcbiAgICAgICAgICAgICAgICBncmFkQ29lZmYgLz0gYSAqIE1hdGgucG93KGRpc3RTcXVhcmVkLCBiKSArIDEuMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IGQgPSAwOyBkIDwgZGltOyBkKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncmFkRCA9IGNsaXAoZ3JhZENvZWZmICogKGN1cnJlbnRbZF0gLSBvdGhlcltkXSksIGNsaXBWYWx1ZSk7XG4gICAgICAgICAgICAgICAgY3VycmVudFtkXSArPSBncmFkRCAqIGFscGhhO1xuICAgICAgICAgICAgICAgIGlmIChtb3ZlT3RoZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJbZF0gKz0gLWdyYWREICogYWxwaGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXBvY2hPZk5leHRTYW1wbGVbaV0gKz0gZXBvY2hzUGVyU2FtcGxlW2ldO1xuICAgICAgICAgICAgY29uc3Qgbk5lZ1NhbXBsZXMgPSBNYXRoLmZsb29yKChuIC0gZXBvY2hPZk5leHROZWdhdGl2ZVNhbXBsZVtpXSkgLyBlcG9jaHNQZXJOZWdhdGl2ZVNhbXBsZVtpXSk7XG4gICAgICAgICAgICBmb3IgKGxldCBwID0gMDsgcCA8IG5OZWdTYW1wbGVzOyBwKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrID0gdXRpbHMudGF1UmFuZEludChuVmVydGljZXMsIHRoaXMucmFuZG9tKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdGhlciA9IHRhaWxFbWJlZGRpbmdba107XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdFNxdWFyZWQgPSByRGlzdChjdXJyZW50LCBvdGhlcik7XG4gICAgICAgICAgICAgICAgbGV0IGdyYWRDb2VmZiA9IDAuMDtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdFNxdWFyZWQgPiAwLjApIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JhZENvZWZmID0gMi4wICogZ2FtbWEgKiBiO1xuICAgICAgICAgICAgICAgICAgICBncmFkQ29lZmYgLz1cbiAgICAgICAgICAgICAgICAgICAgICAgICgwLjAwMSArIGRpc3RTcXVhcmVkKSAqIChhICogTWF0aC5wb3coZGlzdFNxdWFyZWQsIGIpICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGogPT09IGspIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAobGV0IGQgPSAwOyBkIDwgZGltOyBkKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGdyYWREID0gNC4wO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JhZENvZWZmID4gMC4wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmFkRCA9IGNsaXAoZ3JhZENvZWZmICogKGN1cnJlbnRbZF0gLSBvdGhlcltkXSksIGNsaXBWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFtkXSArPSBncmFkRCAqIGFscGhhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVwb2NoT2ZOZXh0TmVnYXRpdmVTYW1wbGVbaV0gKz0gbk5lZ1NhbXBsZXMgKiBlcG9jaHNQZXJOZWdhdGl2ZVNhbXBsZVtpXTtcbiAgICAgICAgfVxuICAgICAgICBvcHRpbWl6YXRpb25TdGF0ZS5hbHBoYSA9IGluaXRpYWxBbHBoYSAqICgxLjAgLSBuIC8gbkVwb2Nocyk7XG4gICAgICAgIG9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaCArPSAxO1xuICAgICAgICByZXR1cm4gaGVhZEVtYmVkZGluZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW1wcm92ZSBhbiBlbWJlZGRpbmcgdXNpbmcgc3RvY2hhc3RpYyBncmFkaWVudCBkZXNjZW50IHRvIG1pbmltaXplIHRoZVxuICAgICAqIGZ1enp5IHNldCBjcm9zcyBlbnRyb3B5IGJldHdlZW4gdGhlIDEtc2tlbGV0b25zIG9mIHRoZSBoaWdoIGRpbWVuc2lvbmFsXG4gICAgICogYW5kIGxvdyBkaW1lbnNpb25hbCBmdXp6eSBzaW1wbGljaWFsIHNldHMuIEluIHByYWN0aWNlIHRoaXMgaXMgZG9uZSBieVxuICAgICAqIHNhbXBsaW5nIGVkZ2VzIGJhc2VkIG9uIHRoZWlyIG1lbWJlcnNoaXAgc3RyZW5ndGggKHdpdGggdGhlICgxLXApIHRlcm1zXG4gICAgICogY29taW5nIGZyb20gbmVnYXRpdmUgc2FtcGxpbmcgc2ltaWxhciB0byB3b3JkMnZlYykuXG4gICAgICovXG4gICAgb3B0aW1pemVMYXlvdXRBc3luYyhlcG9jaENhbGxiYWNrID0gKCkgPT4gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RlcCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG5FcG9jaHMsIGN1cnJlbnRFcG9jaCB9ID0gdGhpcy5vcHRpbWl6YXRpb25TdGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWJlZGRpbmcgPSB0aGlzLm9wdGltaXplTGF5b3V0U3RlcChjdXJyZW50RXBvY2gpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcG9jaENvbXBsZXRlZCA9IHRoaXMub3B0aW1pemF0aW9uU3RhdGUuY3VycmVudEVwb2NoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRTdG9wID0gZXBvY2hDYWxsYmFjayhlcG9jaENvbXBsZXRlZCkgPT09IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0ZpbmlzaGVkID0gZXBvY2hDb21wbGV0ZWQgPT09IG5FcG9jaHM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkU3RvcCAmJiAhaXNGaW5pc2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBzdGVwKCksIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoaXNGaW5pc2hlZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBzdGVwKCksIDApO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW1wcm92ZSBhbiBlbWJlZGRpbmcgdXNpbmcgc3RvY2hhc3RpYyBncmFkaWVudCBkZXNjZW50IHRvIG1pbmltaXplIHRoZVxuICAgICAqIGZ1enp5IHNldCBjcm9zcyBlbnRyb3B5IGJldHdlZW4gdGhlIDEtc2tlbGV0b25zIG9mIHRoZSBoaWdoIGRpbWVuc2lvbmFsXG4gICAgICogYW5kIGxvdyBkaW1lbnNpb25hbCBmdXp6eSBzaW1wbGljaWFsIHNldHMuIEluIHByYWN0aWNlIHRoaXMgaXMgZG9uZSBieVxuICAgICAqIHNhbXBsaW5nIGVkZ2VzIGJhc2VkIG9uIHRoZWlyIG1lbWJlcnNoaXAgc3RyZW5ndGggKHdpdGggdGhlICgxLXApIHRlcm1zXG4gICAgICogY29taW5nIGZyb20gbmVnYXRpdmUgc2FtcGxpbmcgc2ltaWxhciB0byB3b3JkMnZlYykuXG4gICAgICovXG4gICAgb3B0aW1pemVMYXlvdXQoZXBvY2hDYWxsYmFjayA9ICgpID0+IHRydWUpIHtcbiAgICAgICAgbGV0IGlzRmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGVtYmVkZGluZyA9IFtdO1xuICAgICAgICB3aGlsZSAoIWlzRmluaXNoZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbkVwb2NocywgY3VycmVudEVwb2NoIH0gPSB0aGlzLm9wdGltaXphdGlvblN0YXRlO1xuICAgICAgICAgICAgZW1iZWRkaW5nID0gdGhpcy5vcHRpbWl6ZUxheW91dFN0ZXAoY3VycmVudEVwb2NoKTtcbiAgICAgICAgICAgIGNvbnN0IGVwb2NoQ29tcGxldGVkID0gdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS5jdXJyZW50RXBvY2g7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTdG9wID0gZXBvY2hDYWxsYmFjayhlcG9jaENvbXBsZXRlZCkgPT09IGZhbHNlO1xuICAgICAgICAgICAgaXNGaW5pc2hlZCA9IGVwb2NoQ29tcGxldGVkID09PSBuRXBvY2hzIHx8IHNob3VsZFN0b3A7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVtYmVkZGluZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGVwb2NocyBmb3Igb3B0aW1pemluZyB0aGUgcHJvamVjdGlvbi5cbiAgICAgKiBOT1RFOiBUaGlzIGhldXJpc3RpYyBkaWZmZXJzIGZyb20gdGhlIHB5dGhvbiB2ZXJzaW9uXG4gICAgICovXG4gICAgZ2V0TkVwb2NocygpIHtcbiAgICAgICAgY29uc3QgZ3JhcGggPSB0aGlzLmdyYXBoO1xuICAgICAgICBpZiAodGhpcy5uRXBvY2hzID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubkVwb2NocztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdyYXBoKSB7XG4gICAgICAgICAgICByZXR1cm4gMjAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGdyYXBoLm5Sb3dzO1xuICAgICAgICBpZiAobGVuZ3RoIDw9IDI1MDApIHtcbiAgICAgICAgICAgIHJldHVybiA1MDA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobGVuZ3RoIDw9IDUwMDApIHtcbiAgICAgICAgICAgIHJldHVybiA0MDA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobGVuZ3RoIDw9IDc1MDApIHtcbiAgICAgICAgICAgIHJldHVybiAzMDA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMjAwO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGV1Y2xpZGVhbih4LCB5KSB7XG4gICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc3VsdCArPSAoeFtpXSAtIHlbaV0pICoqIDI7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnNxcnQocmVzdWx0KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBudW1lcmljKHgsIHkpIHtcbiAgICBjb25zdCByZXN1bHQgPSBNYXRoLmFicyh4IC0geSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjb3NpbmUoeCwgeSkge1xuICAgIGxldCByZXN1bHQgPSAwLjA7XG4gICAgbGV0IG5vcm1YID0gMC4wO1xuICAgIGxldCBub3JtWSA9IDAuMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVzdWx0ICs9IHhbaV0gKiB5W2ldO1xuICAgICAgICBub3JtWCArPSB4W2ldICoqIDI7XG4gICAgICAgIG5vcm1ZICs9IHlbaV0gKiogMjtcbiAgICB9XG4gICAgaWYgKG5vcm1YID09PSAwICYmIG5vcm1ZID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBlbHNlIGlmIChub3JtWCA9PT0gMCB8fCBub3JtWSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMS4wO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDEuMCAtIHJlc3VsdCAvIE1hdGguc3FydChub3JtWCAqIG5vcm1ZKTtcbiAgICB9XG59XG4vKipcbiAqIEFuIGludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIG9wdGltaXphdGlvbiBzdGF0ZSB0cmFja2VkIGJldHdlZW4gc3RlcHMgb2ZcbiAqIHRoZSBTR0Qgb3B0aW1pemF0aW9uXG4gKi9cbmNsYXNzIE9wdGltaXphdGlvblN0YXRlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RXBvY2ggPSAwO1xuICAgICAgICAvLyBEYXRhIHRyYWNrZWQgZHVyaW5nIG9wdGltaXphdGlvbiBzdGVwcy5cbiAgICAgICAgdGhpcy5oZWFkRW1iZWRkaW5nID0gW107XG4gICAgICAgIHRoaXMudGFpbEVtYmVkZGluZyA9IFtdO1xuICAgICAgICB0aGlzLmhlYWQgPSBbXTtcbiAgICAgICAgdGhpcy50YWlsID0gW107XG4gICAgICAgIHRoaXMuZXBvY2hzUGVyU2FtcGxlID0gW107XG4gICAgICAgIHRoaXMuZXBvY2hPZk5leHRTYW1wbGUgPSBbXTtcbiAgICAgICAgdGhpcy5lcG9jaE9mTmV4dE5lZ2F0aXZlU2FtcGxlID0gW107XG4gICAgICAgIHRoaXMuZXBvY2hzUGVyTmVnYXRpdmVTYW1wbGUgPSBbXTtcbiAgICAgICAgdGhpcy5tb3ZlT3RoZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLmluaXRpYWxBbHBoYSA9IDEuMDtcbiAgICAgICAgdGhpcy5hbHBoYSA9IDEuMDtcbiAgICAgICAgdGhpcy5nYW1tYSA9IDEuMDtcbiAgICAgICAgdGhpcy5hID0gMS41NzY5NDM0NjAzMTEzMDc3O1xuICAgICAgICB0aGlzLmIgPSAwLjg5NTA2MDg3NzkxMDk3MzM7XG4gICAgICAgIHRoaXMuZGltID0gMjtcbiAgICAgICAgdGhpcy5uRXBvY2hzID0gNTAwO1xuICAgICAgICB0aGlzLm5WZXJ0aWNlcyA9IDA7XG4gICAgfVxufVxuLyoqXG4gKiBTdGFuZGFyZCBjbGFtcGluZyBvZiBhIHZhbHVlIGludG8gYSBmaXhlZCByYW5nZVxuICovXG5mdW5jdGlvbiBjbGlwKHgsIGNsaXBWYWx1ZSkge1xuICAgIGlmICh4ID4gY2xpcFZhbHVlKVxuICAgICAgICByZXR1cm4gY2xpcFZhbHVlO1xuICAgIGVsc2UgaWYgKHggPCAtY2xpcFZhbHVlKVxuICAgICAgICByZXR1cm4gLWNsaXBWYWx1ZTtcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiB4O1xufVxuLyoqXG4gKiBSZWR1Y2VkIEV1Y2xpZGVhbiBkaXN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gckRpc3QoeCwgeSkge1xuICAgIGxldCByZXN1bHQgPSAwLjA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc3VsdCArPSBNYXRoLnBvdyh4W2ldIC0geVtpXSwgMik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG4vKipcbiAqIEZpdCBhLCBiIHBhcmFtcyBmb3IgdGhlIGRpZmZlcmVudGlhYmxlIGN1cnZlIHVzZWQgaW4gbG93ZXJcbiAqIGRpbWVuc2lvbmFsIGZ1enp5IHNpbXBsaWNpYWwgY29tcGxleCBjb25zdHJ1Y3Rpb24uIFdlIHdhbnQgdGhlXG4gKiBzbW9vdGggY3VydmUgKGZyb20gYSBwcmUtZGVmaW5lZCBmYW1pbHkgd2l0aCBzaW1wbGUgZ3JhZGllbnQpIHRoYXRcbiAqIGJlc3QgbWF0Y2hlcyBhbiBvZmZzZXQgZXhwb25lbnRpYWwgZGVjYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQUJQYXJhbXMoc3ByZWFkLCBtaW5EaXN0KSB7XG4gICAgY29uc3QgY3VydmUgPSAoW2EsIGJdKSA9PiAoeCkgPT4ge1xuICAgICAgICByZXR1cm4gMS4wIC8gKDEuMCArIGEgKiB4ICoqICgyICogYikpO1xuICAgIH07XG4gICAgY29uc3QgeHYgPSB1dGlsc1xuICAgICAgICAubGluZWFyKDAsIHNwcmVhZCAqIDMsIDMwMClcbiAgICAgICAgLm1hcCh2YWwgPT4gKHZhbCA8IG1pbkRpc3QgPyAxLjAgOiB2YWwpKTtcbiAgICBjb25zdCB5diA9IHV0aWxzLnplcm9zKHh2Lmxlbmd0aCkubWFwKCh2YWwsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGd0ZSA9IHh2W2luZGV4XSA+PSBtaW5EaXN0O1xuICAgICAgICByZXR1cm4gZ3RlID8gTWF0aC5leHAoLSh4dltpbmRleF0gLSBtaW5EaXN0KSAvIHNwcmVhZCkgOiB2YWw7XG4gICAgfSk7XG4gICAgY29uc3QgaW5pdGlhbFZhbHVlcyA9IFswLjUsIDAuNV07XG4gICAgY29uc3QgZGF0YSA9IHsgeDogeHYsIHk6IHl2IH07XG4gICAgLy8gRGVmYXVsdCBvcHRpb25zIGZvciB0aGUgYWxnb3JpdGhtIChmcm9tIGdpdGh1YiBleGFtcGxlKVxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGRhbXBpbmc6IDEuNSxcbiAgICAgICAgaW5pdGlhbFZhbHVlcyxcbiAgICAgICAgZ3JhZGllbnREaWZmZXJlbmNlOiAxMGUtMixcbiAgICAgICAgbWF4SXRlcmF0aW9uczogMTAwLFxuICAgICAgICBlcnJvclRvbGVyYW5jZTogMTBlLTMsXG4gICAgfTtcbiAgICBjb25zdCB7IHBhcmFtZXRlclZhbHVlcyB9ID0gTE0oZGF0YSwgY3VydmUsIG9wdGlvbnMpO1xuICAgIGNvbnN0IFthLCBiXSA9IHBhcmFtZXRlclZhbHVlcztcbiAgICByZXR1cm4geyBhLCBiIH07XG59XG4vKipcbiAqIFVuZGVyIHRoZSBhc3N1bXB0aW9uIG9mIGNhdGVnb3JpY2FsIGRpc3RhbmNlIGZvciB0aGUgaW50ZXJzZWN0aW5nXG4gKiBzaW1wbGljaWFsIHNldCBwZXJmb3JtIGEgZmFzdCBpbnRlcnNlY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmYXN0SW50ZXJzZWN0aW9uKGdyYXBoLCB0YXJnZXQsIHVua25vd25EaXN0ID0gMS4wLCBmYXJEaXN0ID0gNS4wKSB7XG4gICAgcmV0dXJuIGdyYXBoLm1hcCgodmFsdWUsIHJvdywgY29sKSA9PiB7XG4gICAgICAgIGlmICh0YXJnZXRbcm93XSA9PT0gLTEgfHwgdGFyZ2V0W2NvbF0gPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgKiBNYXRoLmV4cCgtdW5rbm93bkRpc3QpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRhcmdldFtyb3ddICE9PSB0YXJnZXRbY29sXSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlICogTWF0aC5leHAoLWZhckRpc3QpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4vKipcbiAqIFJlc2V0IHRoZSBsb2NhbCBjb25uZWN0aXZpdHkgcmVxdWlyZW1lbnQgLS0gZWFjaCBkYXRhIHNhbXBsZSBzaG91bGRcbiAqIGhhdmUgY29tcGxldGUgY29uZmlkZW5jZSBpbiBhdCBsZWFzdCBvbmUgMS1zaW1wbGV4IGluIHRoZSBzaW1wbGljaWFsIHNldC5cbiAqIFdlIGNhbiBlbmZvcmNlIHRoaXMgYnkgbG9jYWxseSByZXNjYWxpbmcgY29uZmlkZW5jZXMsIGFuZCB0aGVuIHJlbWVyZ2luZyB0aGVcbiAqIGRpZmZlcmVudCBsb2NhbCBzaW1wbGljaWFsIHNldHMgdG9nZXRoZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNldExvY2FsQ29ubmVjdGl2aXR5KHNpbXBsaWNpYWxTZXQpIHtcbiAgICBzaW1wbGljaWFsU2V0ID0gbWF0cml4Lm5vcm1hbGl6ZShzaW1wbGljaWFsU2V0LCBcIm1heFwiIC8qIG1hdHJpeC5Ob3JtVHlwZS5tYXggKi8pO1xuICAgIGNvbnN0IHRyYW5zcG9zZSA9IG1hdHJpeC50cmFuc3Bvc2Uoc2ltcGxpY2lhbFNldCk7XG4gICAgY29uc3QgcHJvZE1hdHJpeCA9IG1hdHJpeC5wYWlyd2lzZU11bHRpcGx5KHRyYW5zcG9zZSwgc2ltcGxpY2lhbFNldCk7XG4gICAgc2ltcGxpY2lhbFNldCA9IG1hdHJpeC5hZGQoc2ltcGxpY2lhbFNldCwgbWF0cml4LnN1YnRyYWN0KHRyYW5zcG9zZSwgcHJvZE1hdHJpeCkpO1xuICAgIHJldHVybiBtYXRyaXguZWxpbWluYXRlWmVyb3Moc2ltcGxpY2lhbFNldCk7XG59XG4vKipcbiAqIEdpdmVuIGluZGljZXMgYW5kIHdlaWdodHMgYW5kIGFuIG9yaWdpbmFsIGVtYmVkZGluZ3NcbiAqIGluaXRpYWxpemUgdGhlIHBvc2l0aW9ucyBvZiBuZXcgcG9pbnRzIHJlbGF0aXZlIHRvIHRoZVxuICogaW5kaWNlcyBhbmQgd2VpZ2h0cyAob2YgdGhlaXIgbmVpZ2hib3JzIGluIHRoZSBzb3VyY2UgZGF0YSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0VHJhbnNmb3JtKGluZGljZXMsIHdlaWdodHMsIGVtYmVkZGluZykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzXG4gICAgICAgIC56ZXJvcyhpbmRpY2VzLmxlbmd0aClcbiAgICAgICAgLm1hcCh6ID0+IHV0aWxzLnplcm9zKGVtYmVkZGluZ1swXS5sZW5ndGgpKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluZGljZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpbmRpY2VzWzBdLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBkID0gMDsgZCA8IGVtYmVkZGluZ1swXS5sZW5ndGg7IGQrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBpbmRpY2VzW2ldW2pdO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtpXVtkXSArPSB3ZWlnaHRzW2ldW2pdICogZW1iZWRkaW5nW2FdW2RdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkVzFoY0M1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJblZ0WVhBdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUU3T3pzN096czdPenM3T3pzN096czdPMGRCYVVKSE8wRkJSVWc3T3pzN08wZEJTMGM3UVVGRlNEczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVN0Q1J6dEJRVVZJTEU5QlFVOHNTMEZCU3l4SlFVRkpMRTFCUVUwc1VVRkJVU3hEUVVGRE8wRkJReTlDTEU5QlFVOHNTMEZCU3l4TlFVRk5MRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJRMjVETEU5QlFVOHNTMEZCU3l4VFFVRlRMRTFCUVUwc1kwRkJZeXhEUVVGRE8wRkJRekZETEU5QlFVOHNTMEZCU3l4SlFVRkpMRTFCUVUwc1VVRkJVU3hEUVVGRE8wRkJReTlDTEU5QlFVOHNTMEZCU3l4TFFVRkxMRTFCUVUwc1UwRkJVeXhEUVVGRE8wRkJRMnBETEU5QlFVOHNSVUZCUlN4TlFVRk5MSGRDUVVGM1FpeERRVUZETzBGQllYaERMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUTJoRExFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJiVWc1UWpzN096czdPenM3T3pzN096czdPenM3T3p0SFFXMUNSenRCUVVOSUxFMUJRVTBzVDBGQlR5eEpRVUZKTzBsQk1rTm1MRWxCUVVrc1UwRkJVenRSUVVOWUxFOUJRVThzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXp0SlFVTjZRaXhEUVVGRE8wbEJRMFFzV1VGQldTeFRRVUY1UWl4RlFVRkZPMUZCTjBNdlFpeHBRa0ZCV1N4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVOdVFpeHpRa0ZCYVVJc1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGVFSXNXVUZCVHl4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVOa0xHZENRVUZYTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoQ0xGbEJRVThzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEV2l4bFFVRlZMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMmhDTEhWQ1FVRnJRaXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU4yUWl4WFFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU55UWl4elFrRkJhVUlzUjBGQlJ5eEhRVUZITEVOQlFVTTdVVUZEZUVJc2EwSkJRV0VzUjBGQlJ5eEhRVUZITEVOQlFVTTdVVUZEY0VJc1YwRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF6dFJRVU5pTEhWQ1FVRnJRaXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVVZxUXl3clFrRkJLMEk3VVVGRGRrSXNhVUpCUVZrc1owUkJRVFJDTzFGQlEzaERMR2xDUVVGWkxFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlEyNUNMSEZDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNN1VVRkZia01zWlVGQlZTeEhRVUZsTEU5QlFVOHNRMEZCUXp0UlFWTnFReXhyUWtGQllTeEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTjBRaXhoUVVGUkxFZEJRVzlDTEVWQlFVVXNRMEZCUXp0UlFWTjJReXh6UWtGQmMwSTdVVUZEWkN4alFVRlRMRWRCUVdVc1JVRkJSU3hEUVVGRE8xRkJRek5DTEhOQ1FVRnBRaXhIUVVGSExFbEJRVWtzYVVKQlFXbENMRVZCUVVVc1EwRkJRenRSUVU5c1JDeE5RVUZOTEZGQlFWRXNSMEZCUnl4RFFVRkRMRWRCUVhsQ0xFVkJRVVVzUlVGQlJUdFpRVU0zUXl4WlFVRlpPMWxCUTFvc1NVRkJTU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NVMEZCVXp0blFrRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM3BFTEVOQlFVTXNRMEZCUXp0UlFVVkdMRkZCUVZFc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU4yUWl4UlFVRlJMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGRGVrSXNVVUZCVVN4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdVVUZET1VJc1VVRkJVU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzQkNMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFJRVU40UWl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGNFSXNVVUZCVVN4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRM1pDTEZGQlFWRXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eERRVUZETzFGQlF5OUNMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU51UWl4UlFVRlJMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhSUVVGUkxFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdVVUZETVVJc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyNUNMRkZCUVZFc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRPMGxCUTJwRExFTkJRVU03U1VGRlJEczdUMEZGUnp0SlFVTklMRWRCUVVjc1EwRkJReXhEUVVGVE8xRkJRMWdzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMFFpeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1VVRkZkRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRPMGxCUTNoQ0xFTkJRVU03U1VGRlJEczdPMDlCUjBjN1NVRkRTQ3hMUVVGTExFTkJRVU1zVVVGQlVTeERRVU5hTEVOQlFWTXNSVUZEVkN4WFFVRnZSQ3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlJUbEVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZEVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRGVrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRE8wbEJRM2hDTEVOQlFVTTdTVUZGUkRzN1QwRkZSenRKUVVOSUxIVkNRVUYxUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hUUVVFclFpeEZRVUZGTzFGQlEzQkZMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlExZ3NTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU1zV1VGQldTeEpRVUZKTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1VVRkROMFFzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1dVRkJXU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTTdVVUZETjBRc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdTVUZETTBVc1EwRkJRenRKUVVWRU96dFBRVVZITzBsQlEwZ3NhVUpCUVdsQ0xFTkJRVU1zVlVGQmMwSXNSVUZCUlN4WlFVRjNRanRSUVVOb1JTeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMRlZCUVZVc1EwRkJRenRSUVVNM1FpeEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRmxCUVZrc1EwRkJRenRKUVVOdVF5eERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU0N4aFFVRmhMRU5CUVVNc1EwRkJVenRSUVVOeVFpeEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJUdFpRVU12UWl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExESkNRVUV5UWl4RFFVRkRMRU5CUVVNc1RVRkJUU3d5UWtGQk1rSXNTVUZCU1N4RFFVRkRMRlZCUVZVc2MwUkJRWE5FTEVOQlFVTXNRMEZCUXp0VFFVTjBTanRSUVVWRUxEUkZRVUUwUlR0UlFVTTFSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRVVU3V1VGRGRFTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03VTBGRE1VSTdVVUZGUkN4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVZZTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlR0WlFVTXhReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZETlVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRPMWxCUTNoRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NWVUZCVlN4RFFVRkRMRmxCUVZrc1EwRkJRenRUUVVNM1F6dFJRVVZFTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVTnNReXhEUVVGRExFVkJRMFFzU1VGQlNTeERRVUZETEZWQlFWVXNSVUZEWml4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVOdVFpeERRVUZETzFGQlJVWXNlVVJCUVhsRU8xRkJRM3BFTEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1EwRkJRenRSUVVOeVFpeEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGTTBNc2VVUkJRWGxFTzFGQlEzcEVMRWxCUVVrc1EwRkJReXh0UTBGQmJVTXNSVUZCUlN4RFFVRkRPMUZCUlRORExFMUJRVTBzUlVGRFNpeEpRVUZKTEVWQlEwb3NTVUZCU1N4RlFVTktMR1ZCUVdVc1IwRkRhRUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNaME5CUVdkRExFVkJRVVVzUTBGQlF6dFJRVVUxUXl4eFEwRkJjVU03VVVGRGNrTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRia01zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZEYmtNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMR1ZCUVdVc1IwRkJSeXhsUVVGbExFTkJRVU03VVVGRmVrUXNlVU5CUVhsRE8xRkJRM3BETEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUlVGQlJTeERRVUZETzFGQlF6bENMRWxCUVVrc1EwRkJReXd3UWtGQk1FSXNSVUZCUlN4RFFVRkRPMUZCUTJ4RExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUlRGQ0xFOUJRVThzU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMGxCUXpOQ0xFTkJRVU03U1VGRlR5eGhRVUZoTzFGQlEyNUNMRTFCUVUwc1JVRkJSU3haUVVGWkxFVkJRVVVzWTBGQll5eEZRVUZGTEVkQlFVY3NVMEZCVXl4RFFVRkRMRzFDUVVGdFFpeERRVU53UlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVOb1FpeERRVUZETzFGQlEwWXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhaUVVGWkxFTkJRVU03VVVGRGFrTXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhqUVVGakxFTkJRVU03VVVGRGNrTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhUUVVGVExFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBsQlEyNUZMRU5CUVVNN1NVRkZUeXhsUVVGbExFTkJRVU1zUTBGQlV6dFJRVU12UWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVlVGQlZ5eERRVUZETzFGQlEzQkRMRTFCUVUwc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZoTEVOQlFVTTdVVUZEZUVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU5zUXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhKUVVGSkxFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZET1VRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZETVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUXpGQ0xFMUJRVTBzVTBGQlV5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOc1F5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRGJrTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjRRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRemxDTEVsQlFVa3NVVUZCVVN4SFFVRkhMRU5CUVVNc1JVRkJSVHR2UWtGRGFFSXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMmxDUVVONFF6dGhRVU5HTzFOQlEwWTdVVUZGUkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTJoRUxFOUJRVThzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGRGFFUXNRMEZCUXp0SlFVVkVPenRQUVVWSE8wbEJRMGdzVTBGQlV5eERRVUZETEZkQlFXMUNPMUZCUXpOQ0xESkNRVUV5UWp0UlFVTXpRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNaQ0xFbEJRVWtzVDBGQlR5eExRVUZMTEZOQlFWTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU5xUkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVNN1UwRkRNVU03VVVGRlJDeEpRVUZKTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdVVUZEZGtVc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU5zUkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zWjBKQlFXZENMRU5CUTNKRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlEySXNUMEZCVHl4RlFVTlFMRmRCUVZjc1JVRkRXQ3hWUVVGVkxFVkJRMVlzU1VGQlNTeERRVUZETEdOQlFXTXNSVUZEYmtJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGRGFrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkRXaXhEUVVGRE8xRkJSVVlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFVkJRVVVzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4SlFVRkpMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRmVrVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVU1UkN4UFFVRlBMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM2hFTEZOQlFWTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZOVVFzVFVGQlRTeDVRa0ZCZVVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRNVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUXpkRExGTkJRVk1zUlVGRFZDeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVTm1MSGxDUVVGNVFpeERRVU14UWl4RFFVRkRPMUZCUlVZc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4RFFVTXhSQ3hQUVVGUExFVkJRMUFzVTBGQlV5eEZRVU5VTEUxQlFVMHNSVUZEVGl4SlFVRkpMRU5CUTB3c1EwRkJRenRSUVVWR0xFMUJRVTBzU1VGQlNTeEhRVUZITEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEYkVRc1NVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUlRWRUxHOUZRVUZ2UlR0UlFVTndSU3h6UlVGQmMwVTdVVUZEZEVVc0swUkJRU3RFTzFGQlJTOUVMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4blEwRkJjVUlzUTBGQlF6dFJRVVV6UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTNoRExFMUJRVTBzVDBGQlR5eEhRVUZITEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkZia01zVFVGQlRTeFJRVUZSTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkRPVUlzVTBGQlV5eERRVUZETEU5QlFVOHNSVUZEYWtJc1QwRkJUeXhGUVVOUUxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlEyaENMRU5CUVVNN1VVRkZSaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVTTVRaXhUUVVGVExFTkJRVU1zVFVGQlRTeEZRVU5vUWl4UFFVRlBMRVZCUTFBc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGRGFFSXNRMEZCUXp0UlFVVkdMRTFCUVUwc1UwRkJVeXhIUVVGSExHRkJRV0VzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVVZ3UlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR6dFpRVU14UWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eERRVUZETzFsQlEyeENMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEpRVUZKTEV0QlFVczdaMEpCUTNSQ0xFTkJRVU1zUTBGQlF5eEhRVUZITzJkQ1FVTk1MRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRlVDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TFFVRkxPMkZCUTI1Q0xGTkJRVk1zUlVGQlJUdGhRVU5ZTEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU53UkN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1MwRkJTeXhIUVVGSExGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnlSU3hMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETEdOQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVWeVF5eE5RVUZOTEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlF6bERMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVVzUlVGRGFrSXNUMEZCVHl4RFFVTlNMRU5CUVVNN1VVRkRSaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1VVRkROMElzVFVGQlRTeEpRVUZKTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8xRkJSVGRDTEc5RlFVRnZSVHRSUVVOd1JTeEpRVUZKTEVOQlFVTXNhVU5CUVdsRExFTkJRVU03V1VGRGNrTXNZVUZCWVN4RlFVRkZMRk5CUVZNN1dVRkRlRUlzWVVGQllTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VFFVRlRPMWxCUXpkQ0xFbEJRVWs3V1VGRFNpeEpRVUZKTzFsQlEwb3NXVUZCV1N4RlFVRkZMRU5CUVVNN1dVRkRaaXhQUVVGUE8xbEJRMUFzVTBGQlV5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRE4wSXNaVUZCWlR0VFFVTm9RaXhEUVVGRExFTkJRVU03VVVGRFNDeEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFVkJRVVVzUTBGQlF6dFJRVVZzUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dEpRVU12UWl4RFFVRkRPMGxCUlVRN096dFBRVWRITzBsQlEwc3NiVU5CUVcxRE8xRkJRM3BETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlEzUkNMRWxCUVVrc1EwRkJReXhGUVVGRk8xbEJRMHdzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVU3WjBKQlEzcENMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1EwRkJRenRoUVVOd1JEdFpRVVZFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmxCUVZrc2FVUkJRVFpDTEVWQlFVVTdaMEpCUTJ4RUxFMUJRVTBzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1IwRkJSeXhEUVVGRE8yZENRVU51UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzJkQ1FVTjBSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4dlEwRkJiME1zUTBGRGNFUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkRWaXhEUVVGRExFVkJRMFFzVDBGQlR5eERRVU5TTEVOQlFVTTdZVUZEU0R0WlFVTkVMR2xGUVVGcFJUdFRRVU5zUlR0SlFVTklMRU5CUVVNN1NVRkZSRHM3VDBGRlJ6dEpRVU5JTEVsQlFVazdVVUZEUml4TlFVRk5MRVZCUVVVc1dVRkJXU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRE8xRkJSV2hFTEVsQlFVa3NXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUlVGQlJUdFpRVU53UXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1UwRkRka003VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFpRVUZaTEVOQlFVTTdTVUZETjBNc1EwRkJRenRKUVVWRU96dFBRVVZITzBsQlEwZ3NXVUZCV1R0UlFVTldMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU40UWl4RFFVRkRPMGxCUlVRN096czdUMEZKUnp0SlFVTkxMR2RDUVVGblFpeERRVUZETEVOQlFWTTdVVUZEYUVNc1RVRkJUU3hGUVVGRkxGVkJRVlVzUlVGQlJTeFZRVUZWTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRlRU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hOUVVGTkxHVkJRV1VzUjBGQlJ5eFRRVUZUTEVOQlFVTXNZVUZCWVN4RFFVRkRMRlZCUVZVc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZGZWtVc2JVUkJRVzFFTzFGQlEyNUVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlV5eEZRVUZGTEVWQlFVVTdXVUZETVVJc1QwRkJUeXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRka01zUTBGQlF5eERRVUZETzFGQlJVWXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkROMFFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmJrVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4VlFVRlZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVndSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU53UkN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEdWQlFXVXNRMEZETVVNc1EwRkJReXhGUVVORUxGTkJRVk1zUlVGRFZDeFZRVUZWTEVWQlExWXNUVUZCVFN4RFFVTlFMRU5CUVVNN1VVRkRSaXhQUVVGUExFVkJRVVVzVlVGQlZTeEZRVUZGTEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFTkJRVU03U1VGRGVFUXNRMEZCUXp0SlFVVkVPenM3T3pzN08wOUJUMGM3U1VGRFN5eHJRa0ZCYTBJc1EwRkRlRUlzUTBGQlV5eEZRVU5VTEZWQlFXdENMRVZCUTJ4Q0xHRkJRV0VzUjBGQlJ5eEhRVUZITzFGQlJXNUNMRTFCUVUwc1JVRkJSU3hWUVVGVkxFZEJRVWNzUlVGQlJTeEZRVUZGTEZsQlFWa3NSMEZCUnl4RlFVRkZMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkZka1VzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUXpkRExGbEJRVmtzUlVGRFdpeFZRVUZWTEVWQlExWXNhVUpCUVdsQ0xFTkJRMnhDTEVOQlFVTTdVVUZGUml4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc01FSkJRVEJDTEVOQlF6RkVMRlZCUVZVc1JVRkRWaXhaUVVGWkxFVkJRMW9zVFVGQlRTeEZRVU5PTEVsQlFVa3NRMEZEVEN4RFFVRkRPMUZCUlVZc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU5zUXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGY2tVc1RVRkJUU3hUUVVGVExFZEJRVWNzVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOcVJDeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNXVUZCV1N4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJSWEJGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRVZCUVVVc1UwRkJVeXhEUVVGRExFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTTdVVUZETTBVc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU03VVVGRGJFUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVWQlFVVXNSMEZCUnl4SFFVRkhMR0ZCUVdFc1EwRkJReXhEUVVGRE8xRkJRMnBGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUldoRExFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOTExHOURRVUZ2UXl4RFFVTXhReXhoUVVGclF5eEZRVU5zUXl4TlFVRm5RaXhGUVVOb1FpeFBRVUZsTEVWQlEyWXNWMEZCVnl4SFFVRkhMRWRCUVVjN1VVRkZha0lzU1VGQlNTeFpRVUZaTEVkQlFVY3NaMEpCUVdkQ0xFTkJRMnBETEdGQlFXRXNSVUZEWWl4TlFVRk5MRVZCUTA0c1YwRkJWeXhGUVVOWUxFOUJRVThzUTBGRFVpeERRVUZETzFGQlEwWXNXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZEYmtRc1QwRkJUeXh6UWtGQmMwSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRKUVVNNVF5eERRVUZETzBsQlJVUTdPenM3T3p0UFFVMUhPMGxCUTBzc2FVSkJRV2xDTEVOQlEzWkNMRk5CUVd0Q0xFVkJRMnhDTEVOQlFWTXNSVUZEVkN4cFFrRkJhVUlzUjBGQlJ5eEhRVUZITEVWQlEzWkNMRXRCUVVzc1IwRkJSeXhGUVVGRkxFVkJRMVlzVTBGQlV5eEhRVUZITEVkQlFVYzdVVUZGWml4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJRenRSUVVOMlJDeE5RVUZOTEVkQlFVY3NSMEZCUnl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTXhReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVUzUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU42UXl4SlFVRkpMRVZCUVVVc1IwRkJSeXhIUVVGSExFTkJRVU03V1VGRFlpeEpRVUZKTEVWQlFVVXNSMEZCUnl4UlFVRlJMRU5CUVVNN1dVRkRiRUlzU1VGQlNTeEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRPMWxCUldRc05rUkJRVFpFTzFsQlF6ZEVMRTFCUVUwc1dVRkJXU3hIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnNReXhOUVVGTkxGbEJRVmtzUjBGQlJ5eFpRVUZaTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUlhaRUxFbEJRVWtzV1VGQldTeERRVUZETEUxQlFVMHNTVUZCU1N4cFFrRkJhVUlzUlVGQlJUdG5Ra0ZETlVNc1NVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzJkQ1FVTXhReXhKUVVGSkxHRkJRV0VzUjBGQlJ5eHBRa0ZCYVVJc1IwRkJSeXhMUVVGTExFTkJRVU03WjBKQlF6bERMRWxCUVVrc1MwRkJTeXhIUVVGSExFTkJRVU1zUlVGQlJUdHZRa0ZEWWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGFrTXNTVUZCU1N4aFFVRmhMRWRCUVVjc2EwSkJRV3RDTEVWQlFVVTdkMEpCUTNSRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdORUpCUTBvc1lVRkJZU3hIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0eFFrRkRia1U3YVVKQlEwWTdjVUpCUVUwN2IwSkJRMHdzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMR0ZCUVdFc1IwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdhVUpCUXpGRE8yRkJRMFk3YVVKQlFVMHNTVUZCU1N4WlFVRlpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZEYkVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03WVVGRGJFTTdXVUZGUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU01UWl4SlFVRkpMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU03WjBKQlEyWXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdiMEpCUXpWRExFMUJRVTBzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRMjVETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSVHQzUWtGRFZDeEpRVUZKTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRemxDTzNsQ1FVRk5PM2RDUVVOTUxFbEJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTTdjVUpCUTJJN2FVSkJRMFk3WjBKQlJVUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNSMEZCUnl4clFrRkJhMElzUlVGQlJUdHZRa0ZEYUVRc1RVRkJUVHRwUWtGRFVEdG5Ra0ZGUkN4SlFVRkpMRWxCUVVrc1IwRkJSeXhOUVVGTkxFVkJRVVU3YjBKQlEycENMRVZCUVVVc1IwRkJSeXhIUVVGSExFTkJRVU03YjBKQlExUXNSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXp0cFFrRkRka0k3Y1VKQlFVMDdiMEpCUTB3c1JVRkJSU3hIUVVGSExFZEJRVWNzUTBGQlF6dHZRa0ZEVkN4SlFVRkpMRVZCUVVVc1MwRkJTeXhSUVVGUkxFVkJRVVU3ZDBKQlEyNUNMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03Y1VKQlExWTdlVUpCUVUwN2QwSkJRMHdzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF6dHhRa0ZEZGtJN2FVSkJRMFk3WVVGRFJqdFpRVVZFTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03V1VGRmFFSXNOa1JCUVRaRU8xbEJRemRFTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJUdG5Ra0ZEYUVJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzJkQ1FVTnNSQ3hKUVVGSkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4blFrRkJaMElzUjBGQlJ5eG5Ra0ZCWjBJc1JVRkJSVHR2UWtGRGJrUXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExHZENRVUZuUWl4SFFVRkhMR2RDUVVGblFpeERRVUZETzJsQ1FVTnFSRHRoUVVOR08ybENRVUZOTzJkQ1FVTk1MRTFCUVUwc1lVRkJZU3hIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkROVVFzU1VGQlNTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1owSkJRV2RDTEVkQlFVY3NZVUZCWVN4RlFVRkZPMjlDUVVOb1JDeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1owSkJRV2RDTEVkQlFVY3NZVUZCWVN4RFFVRkRPMmxDUVVNNVF6dGhRVU5HTzFOQlEwWTdVVUZGUkN4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRka01zUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwc3NNRUpCUVRCQ0xFTkJRMmhETEZWQlFXMUNMRVZCUTI1Q0xGbEJRWEZDTEVWQlEzSkNMRTFCUVdkQ0xFVkJRMmhDTEVsQlFXTTdVVUZGWkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETzFGQlEyNURMRTFCUVUwc1ZVRkJWU3hIUVVGSExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkZlRU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFZEJRVWNzVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEYUVRc1RVRkJUU3hKUVVGSkxFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGFFUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVkQlFVY3NWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkZhRVFzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGRkJRVkVzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTnFReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTnVReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTFvc1NVRkJTU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3YjBKQlF6TkNMRk5CUVZNc1EwRkJReXh0UTBGQmJVTTdhVUpCUXpsRE8yZENRVU5FTEVsQlFVa3NWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlR0dlFrRkRNVUlzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXp0cFFrRkRXRHR4UWtGQlRTeEpRVUZKTEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRk8yOUNRVU01UXl4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRE8ybENRVU5ZTzNGQ1FVRk5PMjlDUVVOTUxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJsQ1FVTXZSRHRuUWtGRlJDeEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUXpkQ0xFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE5VTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMkZCUTJoRE8xTkJRMFk3VVVGRlJDeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU01UWl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTeXhuUTBGQlowTTdVVUZEZEVNc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMUZCUld4RExFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkROMElzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dFJRVU16UXl4SlFVRkpMRkZCUVZFc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFrSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZkQlFWY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRE0wTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6ZENMRWxCUVVrc1VVRkJVU3hIUVVGSExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkROMElzVVVGQlVTeEhRVUZITEV0QlFVc3NRMEZCUXp0aFFVTnNRanRUUVVOR08xRkJSVVFzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdXVUZEYmtNc1NVRkJTU3hMUVVGTExFZEJRVWNzVVVGQlVTeEhRVUZITEU5QlFVOHNSVUZCUlR0blFrRkRPVUlzVDBGQlR5eERRVUZETEVOQlFVTTdZVUZEVmp0cFFrRkJUVHRuUWtGRFRDeFBRVUZQTEV0QlFVc3NRMEZCUXp0aFFVTmtPMUZCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeDVSVUZCZVVVN1VVRkRla1VzYVVWQlFXbEZPMUZCUTJwRkxGZEJRVmM3VVVGRFdDeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVU3V1VGRGFrUXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVN1owSkJRM1pETEU5QlFVOHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zZDBKQlFYZENPMWxCUTNoRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwd3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3h0UTBGQmJVTTdVVUZEYmtNc1RVRkJUU3hQUVVGUExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlF6ZENMRTFCUVUwc1NVRkJTU3hIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU14UWl4TlFVRk5MRWxCUVVrc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE1VSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFGQlEzQkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6VkRMRTFCUVUwc1MwRkJTeXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTTVRaXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVTdaMEpCUTJZc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRekZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTnlRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRoUVVOMFFqdFRRVU5HTzFGQlEwUXNUVUZCVFN4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFJRVVZ1UlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeGxRVUZsTEVWQlFVVXNRMEZCUXp0SlFVTjZReXhEUVVGRE8wbEJSVVE3T3p0UFFVZEhPMGxCUTBzc2JVSkJRVzFDTEVOQlFVTXNUMEZCYVVJc1JVRkJSU3hQUVVGbE8xRkJRelZFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMnhFTEUxQlFVMHNSMEZCUnl4SFFVRkhMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETDBJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM1pFTEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZEZUVJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF6dG5Ra0ZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVDBGQlR5eEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNdlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGUkRzN1QwRkZSenRKUVVOTExHbERRVUZwUXl4RFFVRkRMRXRCUVdsRE8xRkJRM3BGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJReTlETEVOQlFVTTdTVUZGUkRzN08wOUJSMGM3U1VGRFN5d3dRa0ZCTUVJN1VVRkRhRU1zYTBKQlFXdENPMUZCUTJ4Q0xFMUJRVTBzUlVGQlJTeHBRa0ZCYVVJc1JVRkJSU3haUVVGWkxFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRmNrVXNUVUZCVFN4RlFVTktMR1ZCUVdVc1JVRkRaaXhoUVVGaExFVkJRMklzWVVGQllTeEhRVU5rTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETzFGQlJUTkNMRTFCUVUwc1IwRkJSeXhIUVVGSExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRjRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NZVUZCWVN4RFFVRkRMRTFCUVUwc1MwRkJTeXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlJXaEZMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NaVUZCWlN4RFFVRkRMRWRCUVVjc1EwRkRha1FzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc2EwSkJRV3RDTEVOQlF6VkNMRU5CUVVNN1VVRkRSaXhOUVVGTkxIbENRVUY1UWl4SFFVRkhMRU5CUVVNc1IwRkJSeXgxUWtGQmRVSXNRMEZCUXl4RFFVRkRPMUZCUXk5RUxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1EwRkJReXhIUVVGSExHVkJRV1VzUTBGQlF5eERRVUZETzFGQlJTOURMRWxCUVVrc1EwRkJReXhwUTBGQmFVTXNRMEZCUXp0WlFVTnlReXhwUWtGQmFVSTdXVUZEYWtJc2VVSkJRWGxDTzFsQlEzcENMSFZDUVVGMVFqdFpRVU4yUWl4VFFVRlRPMWxCUTFRc1dVRkJXU3hGUVVGRkxGbEJRVms3V1VGRE1VSXNTMEZCU3l4RlFVRkZMRmxCUVZrN1dVRkRia0lzUzBGQlN5eEZRVUZGTEdsQ1FVRnBRanRaUVVONFFpeEhRVUZITzFOQlEwb3NRMEZCUXl4RFFVRkRPMGxCUTB3c1EwRkJRenRKUVVWRU96dFBRVVZITzBsQlEwc3NjMEpCUVhOQ08xRkJRelZDTEd0Q1FVRnJRanRSUVVOc1FpeE5RVUZOTEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRE8xRkJRM0pETEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU03VVVGRmNrTXNiMFJCUVc5RU8xRkJRM0JFTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxHVkJRV1VzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dFJRVVV2UkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdVVUZEYkVNc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkZia01zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRmVrUXNTVUZCU1N4RFFVRkRMR2xEUVVGcFF5eERRVUZETzFsQlEzSkRMR0ZCUVdFN1dVRkRZaXhoUVVGaE8xbEJRMklzU1VGQlNUdFpRVU5LTEVsQlFVazdXVUZEU2l4bFFVRmxPMWxCUTJZc1EwRkJRenRaUVVORUxFTkJRVU03V1VGRFJDeFBRVUZQTzFsQlExQXNVMEZCVXp0VFFVTldMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZEU3l4clFrRkJhMElzUTBGQlF5eERRVUZUTzFGQlEyeERMRTFCUVUwc1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVOdVF5eE5RVUZOTEVWQlEwb3NTVUZCU1N4RlFVTktMRWxCUVVrc1JVRkRTaXhoUVVGaExFVkJRMklzWVVGQllTeEZRVU5pTEdWQlFXVXNSVUZEWml4cFFrRkJhVUlzUlVGRGFrSXNlVUpCUVhsQ0xFVkJRM3BDTEhWQ1FVRjFRaXhGUVVOMlFpeFRRVUZUTEVWQlExUXNXVUZCV1N4RlFVTmFMRXRCUVVzc1JVRkRUQ3hMUVVGTExFVkJRMHdzUTBGQlF5eEZRVU5FTEVOQlFVTXNSVUZEUkN4SFFVRkhMRVZCUTBnc1QwRkJUeXhGUVVOUUxGTkJRVk1zUjBGRFZpeEhRVUZITEdsQ1FVRnBRaXhEUVVGRE8xRkJSWFJDTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVWMFFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzWlVGQlpTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVNdlF5eEpRVUZKTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlR0blFrRkROVUlzVTBGQlV6dGhRVU5XTzFsQlJVUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyeENMRTFCUVUwc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVnNRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRha01zVFVGQlRTeExRVUZMTEVkQlFVY3NZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJSUzlDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdXVUZGTVVNc1NVRkJTU3hUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeENMRWxCUVVrc1YwRkJWeXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZEYmtJc1UwRkJVeXhIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU14UkN4VFFVRlRMRWxCUVVrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF6dGhRVU5xUkR0WlFVVkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlF6VkNMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03WjBKQlEyNUZMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMmRDUVVNMVFpeEpRVUZKTEZOQlFWTXNSVUZCUlR0dlFrRkRZaXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8ybENRVU0xUWp0aFFVTkdPMWxCUlVRc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1pVRkJaU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlJUTkRMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlF6VkNMRU5CUVVNc1EwRkJReXhIUVVGSExIbENRVUY1UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRMmhGTEVOQlFVTTdXVUZGUml4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWMEZCVnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU53UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03WjBKQlEyNUVMRTFCUVUwc1MwRkJTeXhIUVVGSExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkZMMElzVFVGQlRTeFhRVUZYTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dG5Ra0ZGTVVNc1NVRkJTU3hUUVVGVExFZEJRVWNzUjBGQlJ5eERRVUZETzJkQ1FVTndRaXhKUVVGSkxGZEJRVmNzUjBGQlJ5eEhRVUZITEVWQlFVVTdiMEpCUTNKQ0xGTkJRVk1zUjBGQlJ5eEhRVUZITEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenR2UWtGRE5VSXNVMEZCVXp0M1FrRkRVQ3hEUVVGRExFdEJRVXNzUjBGQlJ5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dHBRa0ZET1VRN2NVSkJRVTBzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZPMjlDUVVOc1FpeFRRVUZUTzJsQ1FVTldPMmRDUVVWRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdiMEpCUXpWQ0xFbEJRVWtzUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXp0dlFrRkRhRUlzU1VGQlNTeFRRVUZUTEVkQlFVY3NSMEZCUnl4RlFVRkZPM2RDUVVOdVFpeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0eFFrRkRPVVE3YjBKQlEwUXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTTdhVUpCUXpkQ08yRkJRMFk3V1VGRFJDeDVRa0ZCZVVJc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZETVVVN1VVRkRSQ3hwUWtGQmFVSXNRMEZCUXl4TFFVRkxMRWRCUVVjc1dVRkJXU3hIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVVM1JDeHBRa0ZCYVVJc1EwRkJReXhaUVVGWkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzQkRMRTlCUVU4c1lVRkJZU3hEUVVGRE8wbEJRM1pDTEVOQlFVTTdTVUZGUkRzN096czdPMDlCVFVjN1NVRkRTeXh0UWtGQmJVSXNRMEZEZWtJc1owSkJRWGxFTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1VVRkZia1VzVDBGQlR5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJUdFpRVU55UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhMUVVGTExFbEJRVWtzUlVGQlJUdG5Ra0ZEZEVJc1NVRkJTVHR2UWtGRFJpeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenR2UWtGRGVrUXNTVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03YjBKQlEzWkVMRTFCUVUwc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhaUVVGWkxFTkJRVU03YjBKQlF6TkVMRTFCUVUwc1ZVRkJWU3hIUVVGSExHRkJRV0VzUTBGQlF5eGpRVUZqTEVOQlFVTXNTMEZCU3l4TFFVRkxMRU5CUVVNN2IwSkJRek5FTEUxQlFVMHNWVUZCVlN4SFFVRkhMR05CUVdNc1MwRkJTeXhQUVVGUExFTkJRVU03YjBKQlF6bERMRWxCUVVrc1EwRkJReXhWUVVGVkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVTdkMEpCUXpsQ0xGVkJRVlVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZETjBJN2VVSkJRVTA3ZDBKQlEwd3NUMEZCVHl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03Y1VKQlF6VkNPMmxDUVVOR08yZENRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZPMjlDUVVOYUxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0cFFrRkRZanRaUVVOSUxFTkJRVU1zUTBGQlF6dFpRVU5HTEZWQlFWVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTTdTVUZGUkRzN096czdPMDlCVFVjN1NVRkRTeXhqUVVGakxFTkJRM0JDTEdkQ1FVRjVSQ3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlJXNUZMRWxCUVVrc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU4yUWl4SlFVRkpMRk5CUVZNc1IwRkJXU3hGUVVGRkxFTkJRVU03VVVGRE5VSXNUMEZCVHl4RFFVRkRMRlZCUVZVc1JVRkJSVHRaUVVOc1FpeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRaUVVONlJDeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMWxCUTJ4RUxFMUJRVTBzWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFpRVUZaTEVOQlFVTTdXVUZETTBRc1RVRkJUU3hWUVVGVkxFZEJRVWNzWVVGQllTeERRVUZETEdOQlFXTXNRMEZCUXl4TFFVRkxMRXRCUVVzc1EwRkJRenRaUVVNelJDeFZRVUZWTEVkQlFVY3NZMEZCWXl4TFFVRkxMRTlCUVU4c1NVRkJTU3hWUVVGVkxFTkJRVU03VTBGRGRrUTdVVUZEUkN4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlJVUTdPenRQUVVkSE8wbEJRMGtzVlVGQlZUdFJRVU5tTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRmVrSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU53UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU03VTBGRGNrSTdVVUZGUkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRk8xbEJRMVlzVDBGQlR5eEhRVUZITEVOQlFVTTdVMEZEV2p0UlFVVkVMRTFCUVUwc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZETTBJc1NVRkJTU3hOUVVGTkxFbEJRVWtzU1VGQlNTeEZRVUZGTzFsQlEyeENMRTlCUVU4c1IwRkJSeXhEUVVGRE8xTkJRMW83WVVGQlRTeEpRVUZKTEUxQlFVMHNTVUZCU1N4SlFVRkpMRVZCUVVVN1dVRkRla0lzVDBGQlR5eEhRVUZITEVOQlFVTTdVMEZEV2p0aFFVRk5MRWxCUVVrc1RVRkJUU3hKUVVGSkxFbEJRVWtzUlVGQlJUdFpRVU42UWl4UFFVRlBMRWRCUVVjc1EwRkJRenRUUVVOYU8yRkJRVTA3V1VGRFRDeFBRVUZQTEVkQlFVY3NRMEZCUXp0VFFVTmFPMGxCUTBnc1EwRkJRenREUVVOR08wRkJSVVFzVFVGQlRTeFZRVUZWTEZOQlFWTXNRMEZCUXl4RFFVRlRMRVZCUVVVc1EwRkJVenRKUVVNMVF5eEpRVUZKTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRaaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0UlFVTnFReXhOUVVGTkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUXpsQ08wbEJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRek5DTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1QwRkJUeXhEUVVGRExFTkJRVk1zUlVGQlJTeERRVUZUTzBsQlF6RkRMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJReTlDTEU5QlFVOHNUVUZCVFN4RFFVRkRPMEZCUTJoQ0xFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNUVUZCVFN4RFFVRkRMRU5CUVZNc1JVRkJSU3hEUVVGVE8wbEJRM3BETEVsQlFVa3NUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJRenRKUVVOcVFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNN1NVRkRhRUlzU1VGQlNTeExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUldoQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTJwRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzUkNMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTI1Q0xFdEJRVXNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRM0JDTzBsQlJVUXNTVUZCU1N4TFFVRkxMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzUzBGQlN5eERRVUZETEVWQlFVVTdVVUZET1VJc1QwRkJUeXhEUVVGRExFTkJRVU03UzBGRFZqdFRRVUZOTEVsQlFVa3NTMEZCU3l4TFFVRkxMRU5CUVVNc1NVRkJTU3hMUVVGTExFdEJRVXNzUTBGQlF5eEZRVUZGTzFGQlEzSkRMRTlCUVU4c1IwRkJSeXhEUVVGRE8wdEJRMW83VTBGQlRUdFJRVU5NTEU5QlFVOHNSMEZCUnl4SFFVRkhMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJRenRMUVVOb1JEdEJRVU5JTEVOQlFVTTdRVUZGUkRzN08wZEJSMGM3UVVGRFNDeE5RVUZOTEdsQ1FVRnBRanRKUVVGMlFqdFJRVU5GTEdsQ1FVRlpMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSV3BDTERCRFFVRXdRenRSUVVNeFF5eHJRa0ZCWVN4SFFVRmxMRVZCUVVVc1EwRkJRenRSUVVNdlFpeHJRa0ZCWVN4SFFVRmxMRVZCUVVVc1EwRkJRenRSUVVNdlFpeFRRVUZKTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUTNCQ0xGTkJRVWtzUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZEY0VJc2IwSkJRV1VzUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZETDBJc2MwSkJRV2xDTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUTJwRExEaENRVUY1UWl4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVONlF5dzBRa0ZCZFVJc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRGRrTXNZMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVOcVFpeHBRa0ZCV1N4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVOdVFpeFZRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRPMUZCUTFvc1ZVRkJTeXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVU5hTEUxQlFVTXNSMEZCUnl4clFrRkJhMElzUTBGQlF6dFJRVU4yUWl4TlFVRkRMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTTdVVUZEZGtJc1VVRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5TTEZsQlFVOHNSMEZCUnl4SFFVRkhMRU5CUVVNN1VVRkRaQ3hqUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEyaENMRU5CUVVNN1EwRkJRVHRCUVVWRU96dEhRVVZITzBGQlEwZ3NVMEZCVXl4SlFVRkpMRU5CUVVNc1EwRkJVeXhGUVVGRkxGTkJRV2xDTzBsQlEzaERMRWxCUVVrc1EwRkJReXhIUVVGSExGTkJRVk03VVVGQlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0VFFVTXZRaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTTdVVUZCUlN4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRE96dFJRVU4wUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPMGRCUlVjN1FVRkRTQ3hUUVVGVExFdEJRVXNzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTnlReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTTdTVUZEYWtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEYWtNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOd1F6dEpRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMEZCUTJoQ0xFTkJRVU03UVVGRlJEczdPenM3UjBGTFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4WlFVRlpMRU5CUVVNc1RVRkJZeXhGUVVGRkxFOUJRV1U3U1VGRE1VUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFWY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGVExFVkJRVVVzUlVGQlJUdFJRVU5vUkN4UFFVRlBMRWRCUVVjc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVNc1EwRkJReXhEUVVGRE8wbEJSVVlzVFVGQlRTeEZRVUZGTEVkQlFVY3NTMEZCU3p0VFFVTmlMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzVFVGQlRTeEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNN1UwRkRNVUlzUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTTBNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk8xRkJRMjVFTEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTTdVVUZEYWtNc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRPMGxCUXk5RUxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJVZ3NUVUZCVFN4aFFVRmhMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYWtNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF6dEpRVVU1UWl3d1JFRkJNRVE3U1VGRE1VUXNUVUZCVFN4UFFVRlBMRWRCUVVjN1VVRkRaQ3hQUVVGUExFVkJRVVVzUjBGQlJ6dFJRVU5hTEdGQlFXRTdVVUZEWWl4clFrRkJhMElzUlVGQlJTeExRVUZMTzFGQlEzcENMR0ZCUVdFc1JVRkJSU3hIUVVGSE8xRkJRMnhDTEdOQlFXTXNSVUZCUlN4TFFVRkxPMHRCUTNSQ0xFTkJRVU03U1VGRlJpeE5RVUZOTEVWQlFVVXNaVUZCWlN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1FzVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhsUVVFeVFpeERRVUZETzBsQlF6TkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZEYkVJc1EwRkJRenRCUVVWRU96czdSMEZIUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3huUWtGQlowSXNRMEZET1VJc1MwRkJNRUlzUlVGRE1VSXNUVUZCWjBJc1JVRkRhRUlzVjBGQlZ5eEhRVUZITEVkQlFVY3NSVUZEYWtJc1QwRkJUeXhIUVVGSExFZEJRVWM3U1VGRllpeFBRVUZQTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTI1RExFbEJRVWtzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHRaUVVNMVF5eFBRVUZQTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdVMEZEZGtNN1lVRkJUU3hKUVVGSkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVU3V1VGRGRFTXNUMEZCVHl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMU5CUTI1RE8yRkJRVTA3V1VGRFRDeFBRVUZQTEV0QlFVc3NRMEZCUXp0VFFVTmtPMGxCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc2MwSkJRWE5DTEVOQlFVTXNZVUZCYTBNN1NVRkRka1VzWVVGQllTeEhRVUZITEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1lVRkJZU3hyUTBGQmMwSXNRMEZCUXp0SlFVTnlSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wbEJRMnhFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU03U1VGRGNrVXNZVUZCWVN4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRM2hDTEdGQlFXRXNSVUZEWWl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZEZGtNc1EwRkJRenRKUVVOR0xFOUJRVThzVFVGQlRTeERRVUZETEdOQlFXTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRCUVVNNVF5eERRVUZETzBGQlJVUTdPenM3UjBGSlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUXpOQ0xFOUJRVzFDTEVWQlEyNUNMRTlCUVcxQ0xFVkJRMjVDTEZOQlFXdENPMGxCUld4Q0xFMUJRVTBzVFVGQlRTeEhRVUZITEV0QlFVczdVMEZEYWtJc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdVMEZEY2tJc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVNVF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVOMlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU14UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkROVU1zVFVGQlRTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjRRaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTnFSRHRUUVVOR08wdEJRMFk3U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xWEc0Z0tpQkFiR2xqWlc1elpWeHVJQ3BjYmlBcUlFTnZjSGx5YVdkb2RDQXlNREU1SUVkdmIyZHNaU0JNVEVNdUlFRnNiQ0JTYVdkb2RITWdVbVZ6WlhKMlpXUXVYRzRnS2x4dUlDb2dUR2xqWlc1elpXUWdkVzVrWlhJZ2RHaGxJRUZ3WVdOb1pTQk1hV05sYm5ObExDQldaWEp6YVc5dUlESXVNQ0FvZEdobElGd2lUR2xqWlc1elpWd2lLVHRjYmlBcUlIbHZkU0J0WVhrZ2JtOTBJSFZ6WlNCMGFHbHpJR1pwYkdVZ1pYaGpaWEIwSUdsdUlHTnZiWEJzYVdGdVkyVWdkMmwwYUNCMGFHVWdUR2xqWlc1elpTNWNiaUFxSUZsdmRTQnRZWGtnYjJKMFlXbHVJR0VnWTI5d2VTQnZaaUIwYUdVZ1RHbGpaVzV6WlNCaGRGeHVJQ3BjYmlBcUlDQWdJQ0JvZEhSd09pOHZkM2QzTG1Gd1lXTm9aUzV2Y21jdmJHbGpaVzV6WlhNdlRFbERSVTVUUlMweUxqQmNiaUFxWEc0Z0tpQlZibXhsYzNNZ2NtVnhkV2x5WldRZ1lua2dZWEJ3YkdsallXSnNaU0JzWVhjZ2IzSWdZV2R5WldWa0lIUnZJR2x1SUhkeWFYUnBibWNzSUhOdlpuUjNZWEpsWEc0Z0tpQmthWE4wY21saWRYUmxaQ0IxYm1SbGNpQjBhR1VnVEdsalpXNXpaU0JwY3lCa2FYTjBjbWxpZFhSbFpDQnZiaUJoYmlCY0lrRlRJRWxUWENJZ1FrRlRTVk1zWEc0Z0tpQlhTVlJJVDFWVUlGZEJVbEpCVGxSSlJWTWdUMUlnUTA5T1JFbFVTVTlPVXlCUFJpQkJUbGtnUzBsT1JDd2daV2wwYUdWeUlHVjRjSEpsYzNNZ2IzSWdhVzF3YkdsbFpDNWNiaUFxSUZObFpTQjBhR1VnVEdsalpXNXpaU0JtYjNJZ2RHaGxJSE53WldOcFptbGpJR3hoYm1kMVlXZGxJR2R2ZG1WeWJtbHVaeUJ3WlhKdGFYTnphVzl1Y3lCaGJtUmNiaUFxSUd4cGJXbDBZWFJwYjI1eklIVnVaR1Z5SUhSb1pTQk1hV05sYm5ObExseHVJQ29nUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYRzRnS2k5Y2JseHVMeW9xWEc0Z0tpQlVhR2x6SUdseklHRWdTbUYyWVZOamNtbHdkQ0J5WldsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUZWTlFWQWdLRzl5YVdkcGJtRnNJR3hwWTJWdWMyVWdZbVZzYjNjcExDQm1jbTl0WEc0Z0tpQjBhR1VnY0hsMGFHOXVJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHWnZkVzVrSUdGMElHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOXNiV05wYm01bGN5OTFiV0Z3TGx4dUlDcGNiaUFxSUVCaGRYUm9iM0lnWVc1a2VXTnZaVzVsYmtCbmIyOW5iR1V1WTI5dElDaEJibVI1SUVOdlpXNWxiaWxjYmlBcUwxeHVYRzR2S2lwY2JpQXFJRUJzYVdObGJuTmxYRzRnS2lCQ1UwUWdNeTFEYkdGMWMyVWdUR2xqWlc1elpWeHVJQ3BjYmlBcUlFTnZjSGx5YVdkb2RDQW9ZeWtnTWpBeE55d2dUR1ZzWVc1a0lFMWpTVzV1WlhOY2JpQXFJRUZzYkNCeWFXZG9kSE1nY21WelpYSjJaV1F1WEc0Z0tseHVJQ29nVW1Wa2FYTjBjbWxpZFhScGIyNGdZVzVrSUhWelpTQnBiaUJ6YjNWeVkyVWdZVzVrSUdKcGJtRnllU0JtYjNKdGN5d2dkMmwwYUNCdmNpQjNhWFJvYjNWMFhHNGdLaUJ0YjJScFptbGpZWFJwYjI0c0lHRnlaU0J3WlhKdGFYUjBaV1FnY0hKdmRtbGtaV1FnZEdoaGRDQjBhR1VnWm05c2JHOTNhVzVuSUdOdmJtUnBkR2x2Ym5NZ1lYSmxJRzFsZERwY2JpQXFYRzRnS2lBcUlGSmxaR2x6ZEhKcFluVjBhVzl1Y3lCdlppQnpiM1Z5WTJVZ1kyOWtaU0J0ZFhOMElISmxkR0ZwYmlCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN3Z2RHaHBjMXh1SUNvZ0lDQnNhWE4wSUc5bUlHTnZibVJwZEdsdmJuTWdZVzVrSUhSb1pTQm1iMnhzYjNkcGJtY2daR2x6WTJ4aGFXMWxjaTVjYmlBcVhHNGdLaUFxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQXFJQ0FnZEdocGN5QnNhWE4wSUc5bUlHTnZibVJwZEdsdmJuTWdZVzVrSUhSb1pTQm1iMnhzYjNkcGJtY2daR2x6WTJ4aGFXMWxjaUJwYmlCMGFHVWdaRzlqZFcxbGJuUmhkR2x2Ymx4dUlDb2dJQ0JoYm1RdmIzSWdiM1JvWlhJZ2JXRjBaWEpwWVd4eklIQnliM1pwWkdWa0lIZHBkR2dnZEdobElHUnBjM1J5YVdKMWRHbHZiaTVjYmlBcVhHNGdLaUFxSUU1bGFYUm9aWElnZEdobElHNWhiV1VnYjJZZ2RHaGxJR052Y0hseWFXZG9kQ0JvYjJ4a1pYSWdibTl5SUhSb1pTQnVZVzFsY3lCdlppQnBkSE5jYmlBcUlDQWdZMjl1ZEhKcFluVjBiM0p6SUcxaGVTQmlaU0IxYzJWa0lIUnZJR1Z1Wkc5eWMyVWdiM0lnY0hKdmJXOTBaU0J3Y205a2RXTjBjeUJrWlhKcGRtVmtJR1p5YjIxY2JpQXFJQ0FnZEdocGN5QnpiMlowZDJGeVpTQjNhWFJvYjNWMElITndaV05wWm1saklIQnlhVzl5SUhkeWFYUjBaVzRnY0dWeWJXbHpjMmx2Ymk1Y2JpQXFYRzRnS2lCVVNFbFRJRk5QUmxSWFFWSkZJRWxUSUZCU1QxWkpSRVZFSUVKWklGUklSU0JEVDFCWlVrbEhTRlFnU0U5TVJFVlNVeUJCVGtRZ1EwOU9WRkpKUWxWVVQxSlRJRndpUVZNZ1NWTmNJbHh1SUNvZ1FVNUVJRUZPV1NCRldGQlNSVk5USUU5U0lFbE5VRXhKUlVRZ1YwRlNVa0ZPVkVsRlV5d2dTVTVEVEZWRVNVNUhMQ0JDVlZRZ1RrOVVJRXhKVFVsVVJVUWdWRThzSUZSSVJWeHVJQ29nU1UxUVRFbEZSQ0JYUVZKU1FVNVVTVVZUSUU5R0lFMUZVa05JUVU1VVFVSkpURWxVV1NCQlRrUWdSa2xVVGtWVFV5QkdUMUlnUVNCUVFWSlVTVU5WVEVGU0lGQlZVbEJQVTBVZ1FWSkZYRzRnS2lCRVNWTkRURUZKVFVWRUxpQkpUaUJPVHlCRlZrVk9WQ0JUU0VGTVRDQlVTRVVnUTA5UVdWSkpSMGhVSUVoUFRFUkZVaUJQVWlCRFQwNVVVa2xDVlZSUFVsTWdRa1VnVEVsQlFreEZYRzRnS2lCR1QxSWdRVTVaSUVSSlVrVkRWQ3dnU1U1RVNWSkZRMVFzSUVsT1EwbEVSVTVVUVV3c0lGTlFSVU5KUVV3c0lFVllSVTFRVEVGU1dTd2dUMUlnUTA5T1UwVlJWVVZPVkVsQlRGeHVJQ29nUkVGTlFVZEZVeUFvU1U1RFRGVkVTVTVITENCQ1ZWUWdUazlVSUV4SlRVbFVSVVFnVkU4c0lGQlNUME5WVWtWTlJVNVVJRTlHSUZOVlFsTlVTVlJWVkVVZ1IwOVBSRk1nVDFKY2JpQXFJRk5GVWxaSlEwVlRPeUJNVDFOVElFOUdJRlZUUlN3Z1JFRlVRU3dnVDFJZ1VGSlBSa2xVVXpzZ1QxSWdRbFZUU1U1RlUxTWdTVTVVUlZKU1ZWQlVTVTlPS1NCSVQxZEZWa1ZTWEc0Z0tpQkRRVlZUUlVRZ1FVNUVJRTlPSUVGT1dTQlVTRVZQVWxrZ1QwWWdURWxCUWtsTVNWUlpMQ0JYU0VWVVNFVlNJRWxPSUVOUFRsUlNRVU5VTENCVFZGSkpRMVFnVEVsQlFrbE1TVlJaTEZ4dUlDb2dUMUlnVkU5U1ZDQW9TVTVEVEZWRVNVNUhJRTVGUjB4SlIwVk9RMFVnVDFJZ1QxUklSVkpYU1ZORktTQkJVa2xUU1U1SElFbE9JRUZPV1NCWFFWa2dUMVZVSUU5R0lGUklSU0JWVTBWY2JpQXFJRTlHSUZSSVNWTWdVMDlHVkZkQlVrVXNJRVZXUlU0Z1NVWWdRVVJXU1ZORlJDQlBSaUJVU0VVZ1VFOVRVMGxDU1V4SlZGa2dUMFlnVTFWRFNDQkVRVTFCUjBVdVhHNGdLaTljYmx4dWFXMXdiM0owSUNvZ1lYTWdhR1ZoY0NCbWNtOXRJQ2N1TDJobFlYQW5PMXh1YVcxd2IzSjBJQ29nWVhNZ2JXRjBjbWw0SUdaeWIyMGdKeTR2YldGMGNtbDRKenRjYm1sdGNHOXlkQ0FxSUdGeklHNXVSR1Z6WTJWdWRDQm1jbTl0SUNjdUwyNXVYMlJsYzJObGJuUW5PMXh1YVcxd2IzSjBJQ29nWVhNZ2RISmxaU0JtY205dElDY3VMM1J5WldVbk8xeHVhVzF3YjNKMElDb2dZWE1nZFhScGJITWdabkp2YlNBbkxpOTFkR2xzY3ljN1hHNXBiWEJ2Y25RZ1RFMGdabkp2YlNBbmJXd3RiR1YyWlc1aVpYSm5MVzFoY25GMVlYSmtkQ2M3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRVJwYzNSaGJtTmxSbTRnUFNBb2VEb2diblZ0WW1WeUxDQjVPaUJ1ZFcxaVpYSXBJRDArSUc1MWJXSmxjanRjYm1WNGNHOXlkQ0IwZVhCbElGSmhibVJ2YlVadUlEMGdLQ2tnUFQ0Z2JuVnRZbVZ5TzF4dVpYaHdiM0owSUhSNWNHVWdSWEJ2WTJoRFlXeHNZbUZqYXlBOUlDaGxjRzlqYURvZ2JuVnRZbVZ5S1NBOVBpQmliMjlzWldGdUlId2dkbTlwWkR0Y2JtVjRjRzl5ZENCMGVYQmxJRlpsWTNSdmNpQTlJRzUxYldKbGNsdGRPMXh1Wlhod2IzSjBJSFI1Y0dVZ1ZtVmpkRzl5Y3lBOUlGWmxZM1J2Y2x0ZE8xeHVaWGh3YjNKMElHTnZibk4wSUdWdWRXMGdWR0Z5WjJWMFRXVjBjbWxqSUh0Y2JpQWdZMkYwWldkdmNtbGpZV3dnUFNBblkyRjBaV2R2Y21sallXd25MRnh1SUNCc01TQTlJQ2RzTVNjc1hHNGdJR3d5SUQwZ0oyd3lKeXhjYm4xY2JseHVZMjl1YzNRZ1UwMVBUMVJJWDB0ZlZFOU1SVkpCVGtORklEMGdNV1V0TlR0Y2JtTnZibk4wSUUxSlRsOUxYMFJKVTFSZlUwTkJURVVnUFNBeFpTMHpPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUZWTlFWQlFZWEpoYldWMFpYSnpJSHRjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0JrYVhOMFlXNWpaU0JtZFc1amRHbHZiaUIzYVhSb0lIZG9hV05vSUhSdklHRnpjMlZ6Y3lCdVpXRnlaWE4wSUc1bGFXZG9ZbTl5Y3l3Z1pHVm1ZWFZzZEhOY2JpQWdJQ29nZEc4Z1pYVmpiR2xrWldGdUlHUnBjM1JoYm1ObExseHVJQ0FnS2k5Y2JpQWdaR2x6ZEdGdVkyVkdiajg2SUVScGMzUmhibU5sUm00N1hHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ2FXNXBkR2xoYkNCc1pXRnlibWx1WnlCeVlYUmxJR1p2Y2lCMGFHVWdaVzFpWldSa2FXNW5JRzl3ZEdsdGFYcGhkR2x2Ymk1Y2JpQWdJQ292WEc0Z0lHeGxZWEp1YVc1blVtRjBaVDg2SUc1MWJXSmxjanRjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0JzYjJOaGJDQmpiMjV1WldOMGFYWnBkSGtnY21WeGRXbHlaV1FnTFMwZ2FTNWxMaUIwYUdVZ2JuVnRZbVZ5SUc5bUlHNWxZWEpsYzNSY2JpQWdJQ29nYm1WcFoyaGliM0p6SUhSb1lYUWdjMmh2ZFd4a0lHSmxJR0Z6YzNWdFpXUWdkRzhnWW1VZ1kyOXVibVZqZEdWa0lHRjBJR0VnYkc5allXd2diR1YyWld3dVhHNGdJQ0FxSUZSb1pTQm9hV2RvWlhJZ2RHaHBjeUIyWVd4MVpTQjBhR1VnYlc5eVpTQmpiMjV1WldOMFpXUWdkR2hsSUcxaGJtbG1iMnhrSUdKbFkyOXRaWE5jYmlBZ0lDb2diRzlqWVd4c2VTNGdTVzRnY0hKaFkzUnBZMlVnZEdocGN5QnphRzkxYkdRZ1ltVWdibTkwSUcxdmNtVWdkR2hoYmlCMGFHVWdiRzlqWVd3Z2FXNTBjbWx1YzJsalhHNGdJQ0FxSUdScGJXVnVjMmx2YmlCdlppQjBhR1VnYldGdWFXWnZiR1F1WEc0Z0lDQXFMMXh1SUNCc2IyTmhiRU52Ym01bFkzUnBkbWwwZVQ4NklHNTFiV0psY2p0Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCbFptWmxZM1JwZG1VZ2JXbHVhVzExYlNCa2FYTjBZVzVqWlNCaVpYUjNaV1Z1SUdWdFltVmtaR1ZrSUhCdmFXNTBjeTRnVTIxaGJHeGxjaUIyWVd4MVpYTmNiaUFnSUNvZ2QybHNiQ0J5WlhOMWJIUWdhVzRnWVNCdGIzSmxJR05zZFhOMFpYSmxaQzlqYkhWdGNHVmtJR1Z0WW1Wa1pHbHVaeUIzYUdWeVpTQnVaV0Z5WW5rZ2NHOXBiblJ6WEc0Z0lDQXFJRzl1SUhSb1pTQnRZVzVwWm05c1pDQmhjbVVnWkhKaGQyNGdZMnh2YzJWeUlIUnZaMlYwYUdWeUxDQjNhR2xzWlNCc1lYSm5aWElnZG1Gc2RXVnpJSGRwYkd4Y2JpQWdJQ29nY21WemRXeDBJRzl1SUdFZ2JXOXlaU0JsZG1WdUlHUnBjM0JsY25OaGJDQnZaaUJ3YjJsdWRITXVJRlJvWlNCMllXeDFaU0J6YUc5MWJHUWdZbVVnYzJWMFhHNGdJQ0FxSUhKbGJHRjBhWFpsSUhSdklIUm9aU0JnWUhOd2NtVmhaR0JnSUhaaGJIVmxMQ0IzYUdsamFDQmtaWFJsY20xcGJtVnpJSFJvWlNCelkyRnNaU0JoZENCM2FHbGphRnh1SUNBZ0tpQmxiV0psWkdSbFpDQndiMmx1ZEhNZ2QybHNiQ0JpWlNCemNISmxZV1FnYjNWMExseHVJQ0FnS2k5Y2JpQWdiV2x1UkdsemREODZJRzUxYldKbGNqdGNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQmthVzFsYm5OcGIyNGdiMllnZEdobElITndZV05sSUhSdklHVnRZbVZrSUdsdWRHOHVJRlJvYVhNZ1pHVm1ZWFZzZEhNZ2RHOGdNaUIwYjF4dUlDQWdLaUJ3Y205MmFXUmxJR1ZoYzNrZ2RtbHpkV0ZzYVhwaGRHbHZiaXdnWW5WMElHTmhiaUJ5WldGemIyNWhZbXg1SUdKbElITmxkQ0IwYnlCaGJubGNiaUFnSUNvZ2FXNTBaV2RsY2lCMllXeDFaU0JwYmlCMGFHVWdjbUZ1WjJVZ01pQjBieUF4TURBdVhHNGdJQ0FxTDF4dUlDQnVRMjl0Y0c5dVpXNTBjejg2SUc1MWJXSmxjanRjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0J1ZFcxaVpYSWdiMllnZEhKaGFXNXBibWNnWlhCdlkyaHpJSFJ2SUdKbElIVnpaV1FnYVc0Z2IzQjBhVzFwZW1sdVp5QjBhR1ZjYmlBZ0lDb2diRzkzSUdScGJXVnVjMmx2Ym1Gc0lHVnRZbVZrWkdsdVp5NGdUR0Z5WjJWeUlIWmhiSFZsY3lCeVpYTjFiSFFnYVc0Z2JXOXlaU0JoWTJOMWNtRjBaVnh1SUNBZ0tpQmxiV0psWkdScGJtZHpMaUJKWmlCT2IyNWxJR2x6SUhOd1pXTnBabWxsWkNCaElIWmhiSFZsSUhkcGJHd2dZbVVnYzJWc1pXTjBaV1FnWW1GelpXUWdiMjVjYmlBZ0lDb2dkR2hsSUhOcGVtVWdiMllnZEdobElHbHVjSFYwSUdSaGRHRnpaWFFnS0RJd01DQm1iM0lnYkdGeVoyVWdaR0YwWVhObGRITXNJRFV3TUNCbWIzSWdjMjFoYkd3cExseHVJQ0FnS2k5Y2JpQWdia1Z3YjJOb2N6ODZJRzUxYldKbGNqdGNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQnphWHBsSUc5bUlHeHZZMkZzSUc1bGFXZG9ZbTl5YUc5dlpDQW9hVzRnZEdWeWJYTWdiMllnYm5WdFltVnlJRzltSUc1bGFXZG9ZbTl5YVc1blhHNGdJQ0FxSUhOaGJYQnNaU0J3YjJsdWRITXBJSFZ6WldRZ1ptOXlJRzFoYm1sbWIyeGtJR0Z3Y0hKdmVHbHRZWFJwYjI0dUlFeGhjbWRsY2lCMllXeDFaWE5jYmlBZ0lDb2djbVZ6ZFd4MElHbHVJRzF2Y21VZ1oyeHZZbUZzSUhacFpYZHpJRzltSUhSb1pTQnRZVzVwWm05c1pDd2dkMmhwYkdVZ2MyMWhiR3hsY2x4dUlDQWdLaUIyWVd4MVpYTWdjbVZ6ZFd4MElHbHVJRzF2Y21VZ2JHOWpZV3dnWkdGMFlTQmlaV2x1WnlCd2NtVnpaWEoyWldRdUlFbHVJR2RsYm1WeVlXeGNiaUFnSUNvZ2RtRnNkV1Z6SUhOb2IzVnNaQ0JpWlNCcGJpQjBhR1VnY21GdVoyVWdNaUIwYnlBeE1EQXVYRzRnSUNBcUwxeHVJQ0J1VG1WcFoyaGliM0p6UHpvZ2JuVnRZbVZ5TzF4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUc1MWJXSmxjaUJ2WmlCdVpXZGhkR2wyWlNCellXMXdiR1Z6SUhSdklITmxiR1ZqZENCd1pYSWdjRzl6YVhScGRtVWdjMkZ0Y0d4bFhHNGdJQ0FxSUdsdUlIUm9aU0J2Y0hScGJXbDZZWFJwYjI0Z2NISnZZMlZ6Y3k0Z1NXNWpjbVZoYzJsdVp5QjBhR2x6SUhaaGJIVmxJSGRwYkd3Z2NtVnpkV3gwWEc0Z0lDQXFJR2x1SUdkeVpXRjBaWElnY21Wd2RXeHphWFpsSUdadmNtTmxJR0psYVc1bklHRndjR3hwWldRc0lHZHlaV0YwWlhJZ2IzQjBhVzFwZW1GMGFXOXVYRzRnSUNBcUlHTnZjM1FzSUdKMWRDQnpiR2xuYUhSc2VTQnRiM0psSUdGalkzVnlZV041TGx4dUlDQWdLaTljYmlBZ2JtVm5ZWFJwZG1WVFlXMXdiR1ZTWVhSbFB6b2diblZ0WW1WeU8xeHVJQ0F2S2lwY2JpQWdJQ29nVjJWcFoyaDBhVzVuSUdGd2NHeHBaV1FnZEc4Z2JtVm5ZWFJwZG1VZ2MyRnRjR3hsY3lCcGJpQnNiM2NnWkdsdFpXNXphVzl1WVd3Z1pXMWlaV1JrYVc1blhHNGdJQ0FxSUc5d2RHbHRhWHBoZEdsdmJpNGdWbUZzZFdWeklHaHBaMmhsY2lCMGFHRnVJRzl1WlNCM2FXeHNJSEpsYzNWc2RDQnBiaUJuY21WaGRHVnlJSGRsYVdkb2RGeHVJQ0FnS2lCaVpXbHVaeUJuYVhabGJpQjBieUJ1WldkaGRHbDJaU0J6WVcxd2JHVnpMbHh1SUNBZ0tpOWNiaUFnY21Wd2RXeHphVzl1VTNSeVpXNW5kR2cvT2lCdWRXMWlaWEk3WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnY0hObGRXUnZMWEpoYm1SdmJTQnVkVzFpWlhJZ1oyVnVaWEpoZEc5eUlIVnpaV1FnWW5rZ2RHaGxJSE4wYjJOb1lYTjBhV01nY0dGeWRITWdiMllnZEdobFhHNGdJQ0FxSUdGc1oyOXlhWFJvYlM1Y2JpQWdJQ292WEc0Z0lISmhibVJ2YlQ4NklGSmhibVJ2YlVadU8xeHVJQ0F2S2lwY2JpQWdJQ29nU1c1MFpYSndiMnhoZEdVZ1ltVjBkMlZsYmlBb1puVjZlbmtwSUhWdWFXOXVJR0Z1WkNCcGJuUmxjbk5sWTNScGIyNGdZWE1nZEdobElITmxkQ0J2Y0dWeVlYUnBiMjVjYmlBZ0lDb2dkWE5sWkNCMGJ5QmpiMjFpYVc1bElHeHZZMkZzSUdaMWVucDVJSE5wYlhCc2FXTnBZV3dnYzJWMGN5QjBieUJ2WW5SaGFXNGdZU0JuYkc5aVlXd2dablY2ZW5sY2JpQWdJQ29nYzJsdGNHeHBZMmxoYkNCelpYUnpMaUJDYjNSb0lHWjFlbnA1SUhObGRDQnZjR1Z5WVhScGIyNXpJSFZ6WlNCMGFHVWdjSEp2WkhWamRDQjBMVzV2Y20wdVhHNGdJQ0FxSUZSb1pTQjJZV3gxWlNCdlppQjBhR2x6SUhCaGNtRnRaWFJsY2lCemFHOTFiR1FnWW1VZ1ltVjBkMlZsYmlBd0xqQWdZVzVrSURFdU1Ec2dZU0IyWVd4MVpTQnZabHh1SUNBZ0tpQXhMakFnZDJsc2JDQjFjMlVnWVNCd2RYSmxJR1oxZW5wNUlIVnVhVzl1TENCM2FHbHNaU0F3TGpBZ2QybHNiQ0IxYzJVZ1lTQndkWEpsSUdaMWVucDVYRzRnSUNBcUlHbHVkR1Z5YzJWamRHbHZiaTVjYmlBZ0lDb3ZYRzRnSUhObGRFOXdUV2w0VW1GMGFXOC9PaUJ1ZFcxaVpYSTdYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdaV1ptWldOMGFYWmxJSE5qWVd4bElHOW1JR1Z0WW1Wa1pHVmtJSEJ2YVc1MGN5NGdTVzRnWTI5dFltbHVZWFJwYjI0Z2QybDBhQ0JnWUcxcGJsOWthWE4wWUdCY2JpQWdJQ29nZEdocGN5QmtaWFJsY20xcGJtVnpJR2h2ZHlCamJIVnpkR1Z5WldRdlkyeDFiWEJsWkNCMGFHVWdaVzFpWldSa1pXUWdjRzlwYm5SeklHRnlaUzVjYmlBZ0lDb3ZYRzRnSUhOd2NtVmhaRDg2SUc1MWJXSmxjanRjYmlBZ0x5b3FYRzRnSUNBcUlFWnZjaUIwY21GdWMyWnZjbTBnYjNCbGNtRjBhVzl1Y3lBb1pXMWlaV1JrYVc1bklHNWxkeUJ3YjJsdWRITWdkWE5wYm1jZ1lTQjBjbUZwYm1Wa0lHMXZaR1ZzS1Z4dUlDQWdLaUIwYUdseklIZHBiR3dnWTI5dWRISnZiQ0JvYjNjZ1lXZG5jbVZ6YzJsMlpXeDVJSFJ2SUhObFlYSmphQ0JtYjNJZ2JtVmhjbVZ6ZENCdVpXbG5hR0p2Y25NdVhHNGdJQ0FxSUV4aGNtZGxjaUIyWVd4MVpYTWdkMmxzYkNCeVpYTjFiSFFnYVc0Z2MyeHZkMlZ5SUhCbGNtWnZjbTFoYm1ObElHSjFkQ0J0YjNKbElHRmpZM1Z5WVhSbFhHNGdJQ0FxSUc1bFlYSmxjM1FnYm1WcFoyaGliM0lnWlhaaGJIVmhkR2x2Ymk1Y2JpQWdJQ292WEc0Z0lIUnlZVzV6Wm05eWJWRjFaWFZsVTJsNlpUODZJRzUxYldKbGNqdGNibjFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCVlRVRlFVM1Z3WlhKMmFYTmxaRkJoY21GdGN5QjdYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdiV1YwY21saklIVnpaV1FnZEc4Z2JXVmhjM1Z5WlNCa2FYTjBZVzVqWlNCbWIzSWdZU0IwWVhKblpYUWdZWEp5WVhrZ2FYTWdkWE5wYm1jZ2MzVndaWEoyYVhObFpGeHVJQ0FnS2lCa2FXMWxibk5wYjI0Z2NtVmtkV04wYVc5dUxpQkNlU0JrWldaaGRXeDBJSFJvYVhNZ2FYTWdKMk5oZEdWbmIzSnBZMkZzSnlCM2FHbGphQ0IzYVd4c0lHMWxZWE4xY21WY2JpQWdJQ29nWkdsemRHRnVZMlVnYVc0Z2RHVnliWE1nYjJZZ2QyaGxkR2hsY2lCallYUmxaMjl5YVdWeklHMWhkR05vSUc5eUlHRnlaU0JrYVdabVpYSmxiblF1SUVaMWNuUm9aWEp0YjNKbExGeHVJQ0FnS2lCcFppQnpaVzFwTFhOMWNHVnlkbWx6WldRZ2FYTWdjbVZ4ZFdseVpXUWdkR0Z5WjJWMElIWmhiSFZsY3lCdlppQXRNU0IzYVd4c0lHSmxJSFJ5WldGMFpXUWdZWE5jYmlBZ0lDb2dkVzVzWVdKbGJHeGxaQ0IxYm1SbGNpQjBhR1VnSjJOaGRHVm5iM0pwWTJGc0p5QnRaWFJ5YVdNdUlFbG1JSFJvWlNCMFlYSm5aWFFnWVhKeVlYa2dkR0ZyWlhOY2JpQWdJQ29nWTI5dWRHbHVkVzkxY3lCMllXeDFaWE1nS0dVdVp5NGdabTl5SUdFZ2NtVm5jbVZ6YzJsdmJpQndjbTlpYkdWdEtTQjBhR1Z1SUcxbGRISnBZeUJ2WmlBbmJERW5YRzRnSUNBcUlHOXlJQ2RzTWljZ2FYTWdjSEp2WW1GaWJIa2diVzl5WlNCaGNIQnliM0J5YVdGMFpTNWNiaUFnSUNvdlhHNGdJSFJoY21kbGRFMWxkSEpwWXo4NklGUmhjbWRsZEUxbGRISnBZenRjYmlBZ0x5b3FYRzRnSUNBcUlGZGxhV2RvZEdsdVp5Qm1ZV04wYjNJZ1ltVjBkMlZsYmlCa1lYUmhJSFJ2Y0c5c2IyZDVJR0Z1WkNCMFlYSm5aWFFnZEc5d2IyeHZaM2t1SUVFZ2RtRnNkV1VnYjJaY2JpQWdJQ29nTUM0d0lIZGxhV2RvZEhNZ1pXNTBhWEpsYkhrZ2IyNGdaR0YwWVN3Z1lTQjJZV3gxWlNCdlppQXhMakFnZDJWcFoyaDBjeUJsYm5ScGNtVnNlU0J2YmlCMFlYSm5aWFF1WEc0Z0lDQXFJRlJvWlNCa1pXWmhkV3gwSUc5bUlEQXVOU0JpWVd4aGJtTmxjeUIwYUdVZ2QyVnBaMmgwYVc1bklHVnhkV0ZzYkhrZ1ltVjBkMlZsYmlCa1lYUmhJR0Z1WkNCMFlYSm5aWFF1WEc0Z0lDQXFMMXh1SUNCMFlYSm5aWFJYWldsbmFIUS9PaUJ1ZFcxaVpYSTdYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdiblZ0WW1WeUlHOW1JRzVsWVhKbGMzUWdibVZwWjJoaWIzSnpJSFJ2SUhWelpTQjBieUJqYjI1emRISjFZM1FnZEdobElIUmhjbWRsZENCemFXMXdiR05wWVd4Y2JpQWdJQ29nYzJWMExpQkVaV1poZFd4MGN5QjBieUIwYUdVZ1lHNWxZWEpsYzNST1pXbG5hR0p2Y25OZ0lIQmhjbUZ0WlhSbGNpNWNiaUFnSUNvdlhHNGdJSFJoY21kbGRFNU9aV2xuYUdKdmNuTS9PaUJ1ZFcxaVpYSTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1ZVMUJVQ0J3Y205cVpXTjBhVzl1SUhONWMzUmxiU3dnWW1GelpXUWdiMjRnZEdobElIQjVkR2h2YmlCcGJYQnNaVzFsYm5SaGRHbHZiaUJtY205dElFMWpTVzV1WlhNc0lFd3NYRzRnS2lCSVpXRnNlU3dnU2l3Z1ZVMUJVRG9nVlc1cFptOXliU0JOWVc1cFptOXNaQ0JCY0hCeWIzaHBiV0YwYVc5dUlHRnVaQ0JRY205cVpXTjBhVzl1SUdadmNpQkVhVzFsYm5OcGIyNWNiaUFxSUZKbFpIVmpkR2x2YmlBb2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwyeHRZMmx1Ym1WekwzVnRZWEFwTGx4dUlDcGNiaUFxSUZSb2FYTWdhVzF3YkdWdFpXNTBZWFJwYjI0Z1pHbG1abVZ5Y3lCcGJpQmhJR1psZHlCeVpXZGhjbVJ6T2x4dUlDb2dZU2tnVkdobElHbHVhWFJwWVd4cGVtRjBhVzl1SUc5bUlIUm9aU0JsYldKbFpHUnBibWNnWm05eUlHOXdkR2x0YVhwaGRHbHZiaUJwY3lCdWIzUWdZMjl0Y0hWMFpXUWdkWE5wYm1kY2JpQXFJQ0FnSUdFZ2MzQmxZM1J5WVd3Z2JXVjBhRzlrTENCeVlYUm9aWElnYVhRZ2FYTWdhVzVwZEdsaGJHbDZaV1FnY21GdVpHOXRiSGt1SUZSb2FYTWdZWFp2YVdSeklITnZiV1ZjYmlBcUlDQWdJR052YlhCMWRHRjBhVzl1WVd4c2VTQnBiblJsYm5OcGRtVWdiV0YwY21sNElHVnBaMlZ1SUdOdmJYQjFkR0YwYVc5dWN5QjBhR0YwSUdGeVpXNG5kQ0JsWVhOcGJIbGNiaUFxSUNBZ0lIQnZjblJsWkNCMGJ5QktZWFpoVTJOeWFYQjBMbHh1SUNvZ1lpa2dRU0JzYjNRZ2IyWWdYQ0psZUhSeVlWd2lJR1oxYm1OMGFXOXVZV3hwZEhrZ2FHRnpJR0psWlc0Z2IyMXBkSFJsWkNCbWNtOXRJSFJvYVhNZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRzWEc0Z0tpQWdJQ0J0YjNOMElHNXZkR0ZpYkhrZ1lTQm5jbVZoZENCa1pXRnNJRzltSUdGc2RHVnlibUYwWlNCa2FYTjBZVzVqWlNCbWRXNWpkR2x2Ym5NdVhHNGdLbHh1SUNvZ1ZHaHBjeUJwYlhCc1pXMWxiblJoZEdsdmJpQndjbTkyYVdSbGN5QjBhSEpsWlNCdFpYUm9iMlJ6SUc5bUlISmxaSFZqYVc1bklHUnBiV1Z1YzJsdmJtRnNhWFI1T2x4dUlDb2dNU2tnWm1sME9pQm1hWFFnZEdobElHUmhkR0VnYzNsdVkyaHliMjV2ZFhOc2VWeHVJQ29nTWlrZ1ptbDBRWE41Ym1NNklHWnBkQ0IwYUdVZ1pHRjBZU0JoYzNsdVkyaHliMjV2ZFhOc2VTd2dkMmwwYUNCaElHTmhiR3hpWVdOcklHWjFibU4wYVc5dUlIQnliM1pwWkdWa1hHNGdLaUFnSUNBZ0lIUm9ZWFFnYVhNZ2FXNTJiMnRsWkNCdmJpQmxZV05vSUc5d2RHbHRhWHBoZEdsdmJpQnpkR1Z3TGx4dUlDb2dNeWtnYVc1cGRHbGhiR2w2WlVacGRDQXZJSE4wWlhBNklHMWhiblZoYkd4NUlHbHVhWFJwWVd4cGVtVWdkR2hsSUdGc1oyOXlhWFJvYlNCMGFHVnVJR1Y0Y0d4cFkzUnNlVnh1SUNvZ0lDQWdJQ0J6ZEdWd0lIUm9jbTkxWjJnZ1pXRmphQ0JsY0c5amFDQnZaaUIwYUdVZ1UwZEVJRzl3ZEdsdGFYcGhkR2x2Ymx4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZVMUJVQ0I3WEc0Z0lIQnlhWFpoZEdVZ2JHVmhjbTVwYm1kU1lYUmxJRDBnTVM0d08xeHVJQ0J3Y21sMllYUmxJR3h2WTJGc1EyOXVibVZqZEdsMmFYUjVJRDBnTVM0d08xeHVJQ0J3Y21sMllYUmxJRzFwYmtScGMzUWdQU0F3TGpFN1hHNGdJSEJ5YVhaaGRHVWdia052YlhCdmJtVnVkSE1nUFNBeU8xeHVJQ0J3Y21sMllYUmxJRzVGY0c5amFITWdQU0F3TzF4dUlDQndjbWwyWVhSbElHNU9aV2xuYUdKdmNuTWdQU0F4TlR0Y2JpQWdjSEpwZG1GMFpTQnVaV2RoZEdsMlpWTmhiWEJzWlZKaGRHVWdQU0ExTzF4dUlDQndjbWwyWVhSbElISmhibVJ2YlNBOUlFMWhkR2d1Y21GdVpHOXRPMXh1SUNCd2NtbDJZWFJsSUhKbGNIVnNjMmx2YmxOMGNtVnVaM1JvSUQwZ01TNHdPMXh1SUNCd2NtbDJZWFJsSUhObGRFOXdUV2w0VW1GMGFXOGdQU0F4TGpBN1hHNGdJSEJ5YVhaaGRHVWdjM0J5WldGa0lEMGdNUzR3TzF4dUlDQndjbWwyWVhSbElIUnlZVzV6Wm05eWJWRjFaWFZsVTJsNlpTQTlJRFF1TUR0Y2JseHVJQ0F2THlCVGRYQmxjblpwYzJWa0lIQnliMnBsWTNScGIyNGdjR0Z5WVcxelhHNGdJSEJ5YVhaaGRHVWdkR0Z5WjJWMFRXVjBjbWxqSUQwZ1ZHRnlaMlYwVFdWMGNtbGpMbU5oZEdWbmIzSnBZMkZzTzF4dUlDQndjbWwyWVhSbElIUmhjbWRsZEZkbGFXZG9kQ0E5SURBdU5UdGNiaUFnY0hKcGRtRjBaU0IwWVhKblpYUk9UbVZwWjJoaWIzSnpJRDBnZEdocGN5NXVUbVZwWjJoaWIzSnpPMXh1WEc0Z0lIQnlhWFpoZEdVZ1pHbHpkR0Z1WTJWR2Jqb2dSR2x6ZEdGdVkyVkdiaUE5SUc1MWJXVnlhV003WEc1Y2JpQWdMeThnUzA1T0lITjBZWFJsSUNoallXNGdZbVVnY0hKbFkyOXRjSFYwWldRZ1lXNWtJSE4xY0hCc2FXVmtJSFpwWVNCcGJtbDBhV0ZzYVhwbFJtbDBLVnh1SUNCd2NtbDJZWFJsSUd0dWJrbHVaR2xqWlhNL09pQnVkVzFpWlhKYlhWdGRPMXh1SUNCd2NtbDJZWFJsSUd0dWJrUnBjM1JoYm1ObGN6ODZJRzUxYldKbGNsdGRXMTA3WEc1Y2JpQWdMeThnU1c1MFpYSnVZV3dnWjNKaGNHZ2dZMjl1Ym1WamRHbDJhWFI1SUhKbGNISmxjMlZ1ZEdGMGFXOXVYRzRnSUhCeWFYWmhkR1VnWjNKaGNHZ2hPaUJ0WVhSeWFYZ3VVM0JoY25ObFRXRjBjbWw0TzF4dUlDQndjbWwyWVhSbElGZ2hPaUJXWldOMGIzSTdYRzRnSUhCeWFYWmhkR1VnYVhOSmJtbDBhV0ZzYVhwbFpDQTlJR1poYkhObE8xeHVJQ0J3Y21sMllYUmxJSEp3Um05eVpYTjBPaUIwY21WbExrWnNZWFJVY21WbFcxMGdQU0JiWFR0Y2JpQWdjSEpwZG1GMFpTQnBibWwwUm5KdmJWSmhibVJ2YlNFNklHNXVSR1Z6WTJWdWRDNUpibWwwUm5KdmJWSmhibVJ2YlVadU8xeHVJQ0J3Y21sMllYUmxJR2x1YVhSR2NtOXRWSEpsWlNFNklHNXVSR1Z6WTJWdWRDNUpibWwwUm5KdmJWUnlaV1ZHYmp0Y2JpQWdjSEpwZG1GMFpTQnpaV0Z5WTJnaE9pQnVia1JsYzJObGJuUXVVMlZoY21Ob1JtNDdYRzRnSUhCeWFYWmhkR1VnYzJWaGNtTm9SM0poY0dnaE9pQnRZWFJ5YVhndVUzQmhjbk5sVFdGMGNtbDRPMXh1WEc0Z0lDOHZJRk4xY0dWeWRtbHpaV1FnY0hKdmFtVmpkR2x2YmlCc1lXSmxiSE1nTHlCMFlYSm5aWFJ6WEc0Z0lIQnlhWFpoZEdVZ1dUODZJRzUxYldKbGNsdGRPMXh1WEc0Z0lDOHZJRkJ5YjJwbFkzUmxaQ0JsYldKbFpHUnBibWRjYmlBZ2NISnBkbUYwWlNCbGJXSmxaR1JwYm1jNklHNTFiV0psY2x0ZFcxMGdQU0JiWFR0Y2JpQWdjSEpwZG1GMFpTQnZjSFJwYldsNllYUnBiMjVUZEdGMFpTQTlJRzVsZHlCUGNIUnBiV2w2WVhScGIyNVRkR0YwWlNncE8xeHVYRzVjYmlBZ1oyVjBJRzVsYVdkb1ltOXljeWdwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dVRtVnBaMmhpYjNKek8xeHVJQ0I5WEc0Z0lHTnZibk4wY25WamRHOXlLSEJoY21GdGN6b2dWVTFCVUZCaGNtRnRaWFJsY25NZ1BTQjdmU2tnZTF4dUlDQWdJR052Ym5OMElITmxkRkJoY21GdElEMGdLR3RsZVRvZ2EyVjViMllnVlUxQlVGQmhjbUZ0WlhSbGNuTXBJRDArSUh0Y2JpQWdJQ0FnSUM4dlFIUnpMV2xuYm05eVpWeHVJQ0FnSUNBZ2FXWWdLSEJoY21GdGMxdHJaWGxkSUNFOVBTQjFibVJsWm1sdVpXUXBJSFJvYVhOYmEyVjVYU0E5SUhCaGNtRnRjMXRyWlhsZE8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNCelpYUlFZWEpoYlNnblpHbHpkR0Z1WTJWR2JpY3BPMXh1SUNBZ0lITmxkRkJoY21GdEtDZHNaV0Z5Ym1sdVoxSmhkR1VuS1R0Y2JpQWdJQ0J6WlhSUVlYSmhiU2duYkc5allXeERiMjV1WldOMGFYWnBkSGtuS1R0Y2JpQWdJQ0J6WlhSUVlYSmhiU2duYldsdVJHbHpkQ2NwTzF4dUlDQWdJSE5sZEZCaGNtRnRLQ2R1UTI5dGNHOXVaVzUwY3ljcE8xeHVJQ0FnSUhObGRGQmhjbUZ0S0NkdVJYQnZZMmh6SnlrN1hHNGdJQ0FnYzJWMFVHRnlZVzBvSjI1T1pXbG5hR0p2Y25NbktUdGNiaUFnSUNCelpYUlFZWEpoYlNnbmJtVm5ZWFJwZG1WVFlXMXdiR1ZTWVhSbEp5azdYRzRnSUNBZ2MyVjBVR0Z5WVcwb0ozSmhibVJ2YlNjcE8xeHVJQ0FnSUhObGRGQmhjbUZ0S0NkeVpYQjFiSE5wYjI1VGRISmxibWQwYUNjcE8xeHVJQ0FnSUhObGRGQmhjbUZ0S0NkelpYUlBjRTFwZUZKaGRHbHZKeWs3WEc0Z0lDQWdjMlYwVUdGeVlXMG9KM053Y21WaFpDY3BPMXh1SUNBZ0lITmxkRkJoY21GdEtDZDBjbUZ1YzJadmNtMVJkV1YxWlZOcGVtVW5LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCR2FYUWdkR2hsSUdSaGRHRWdkRzhnWVNCd2NtOXFaV04wWldRZ1pXMWlaV1JrYVc1bklITndZV05sSUhONWJtTm9jbTl1YjNWemJIa3VYRzRnSUNBcUwxeHVJQ0JtYVhRb1dEb2dWbVZqZEc5eUtTQjdYRzRnSUNBZ2RHaHBjeTVwYm1sMGFXRnNhWHBsUm1sMEtGZ3BPMXh1SUNBZ0lIUm9hWE11YjNCMGFXMXBlbVZNWVhsdmRYUW9LVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1WdFltVmtaR2x1Wnp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkdhWFFnZEdobElHUmhkR0VnZEc4Z1lTQndjbTlxWldOMFpXUWdaVzFpWldSa2FXNW5JSE53WVdObElHRnplVzVqYUhKdmJtOTFjMng1TENCM2FYUm9JR0VnWTJGc2JHSmhZMnRjYmlBZ0lDb2dablZ1WTNScGIyNGdhVzUyYjJ0bFpDQnZiaUJsZG1WeWVTQmxjRzlqYUNCdlppQnZjSFJwYldsNllYUnBiMjR1WEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJtYVhSQmMzbHVZeWhjYmlBZ0lDQllPaUJXWldOMGIzSXNYRzRnSUNBZ1kyRnNiR0poWTJzNklDaGxjRzlqYUU1MWJXSmxjam9nYm5WdFltVnlLU0E5UGlCMmIybGtJSHdnWW05dmJHVmhiaUE5SUNncElEMCtJSFJ5ZFdWY2JpQWdLU0I3WEc0Z0lDQWdkR2hwY3k1cGJtbDBhV0ZzYVhwbFJtbDBLRmdwTzF4dVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1dmNIUnBiV2w2WlV4aGVXOTFkRUZ6ZVc1aktHTmhiR3hpWVdOcktUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWxiV0psWkdScGJtYzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nU1c1cGRHbGhiR2w2WlhNZ2NHRnlZVzFsZEdWeWN5QnVaV1ZrWldRZ1ptOXlJSE4xY0dWeWRtbHpaV1FnY0hKdmFtVmpkR2x2Ymk1Y2JpQWdJQ292WEc0Z0lITmxkRk4xY0dWeWRtbHpaV1JRY205cVpXTjBhVzl1S0ZrNklHNTFiV0psY2x0ZExDQndZWEpoYlhNNklGVk5RVkJUZFhCbGNuWnBjMlZrVUdGeVlXMXpJRDBnZTMwcElIdGNiaUFnSUNCMGFHbHpMbGtnUFNCWk8xeHVJQ0FnSUhSb2FYTXVkR0Z5WjJWMFRXVjBjbWxqSUQwZ2NHRnlZVzF6TG5SaGNtZGxkRTFsZEhKcFl5QjhmQ0IwYUdsekxuUmhjbWRsZEUxbGRISnBZenRjYmlBZ0lDQjBhR2x6TG5SaGNtZGxkRmRsYVdkb2RDQTlJSEJoY21GdGN5NTBZWEpuWlhSWFpXbG5hSFFnZkh3Z2RHaHBjeTUwWVhKblpYUlhaV2xuYUhRN1hHNGdJQ0FnZEdocGN5NTBZWEpuWlhST1RtVnBaMmhpYjNKeklEMGdjR0Z5WVcxekxuUmhjbWRsZEU1T1pXbG5hR0p2Y25NZ2ZId2dkR2hwY3k1MFlYSm5aWFJPVG1WcFoyaGliM0p6TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFbHVhWFJwWVd4cGVtVnpJSFZ0WVhBZ2QybDBhQ0J3Y21WamIyMXdkWFJsWkNCTFRrNGdhVzVrYVdObGN5QmhibVFnWkdsemRHRnVZMlZ6TGx4dUlDQWdLaTljYmlBZ2MyVjBVSEpsWTI5dGNIVjBaV1JMVGs0b2EyNXVTVzVrYVdObGN6b2diblZ0WW1WeVcxMWJYU3dnYTI1dVJHbHpkR0Z1WTJWek9pQnVkVzFpWlhKYlhWdGRLU0I3WEc0Z0lDQWdkR2hwY3k1cmJtNUpibVJwWTJWeklEMGdhMjV1U1c1a2FXTmxjenRjYmlBZ0lDQjBhR2x6TG10dWJrUnBjM1JoYm1ObGN5QTlJR3R1YmtScGMzUmhibU5sY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkpibWwwYVdGc2FYcGxjeUJtYVhRZ1lua2dZMjl0Y0hWMGFXNW5JRXRPVGlCaGJtUWdZU0JtZFhwNmVTQnphVzF3YkdsamFXRnNJSE5sZEN3Z1lYTWdkMlZzYkNCaGMxeHVJQ0FnS2lCcGJtbDBhV0ZzYVhwcGJtY2dkR2hsSUhCeWIycGxZM1JsWkNCbGJXSmxaR1JwYm1kekxpQlRaWFJ6SUhSb1pTQnZjSFJwYldsNllYUnBiMjRnYzNSaGRHVWdZV2hsWVdSY2JpQWdJQ29nYjJZZ2IzQjBhVzFwZW1GMGFXOXVJSE4wWlhCekxpQlNaWFIxY201eklIUm9aU0J1ZFcxaVpYSWdiMllnWlhCdlkyaHpJSFJ2SUdKbElIVnpaV1FnWm05eUlIUm9aVnh1SUNBZ0tpQlRSMFFnYjNCMGFXMXBlbUYwYVc5dUxseHVJQ0FnS2k5Y2JpQWdhVzVwZEdsaGJHbDZaVVpwZENoWU9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0FnSUdsbUlDaFlMbXhsYm1kMGFDQThQU0IwYUdsekxtNU9aV2xuYUdKdmNuTXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdUbTkwSUdWdWIzVm5hQ0JrWVhSaElIQnZhVzUwY3lBb0pIdFlMbXhsYm1kMGFIMHBJSFJ2SUdOeVpXRjBaU0J1VG1WcFoyaGliM0p6T2lBa2UzUm9hWE11Yms1bGFXZG9ZbTl5YzMwdUlDQkJaR1FnYlc5eVpTQmtZWFJoSUhCdmFXNTBjeUJ2Y2lCaFpHcDFjM1FnZEdobElHTnZibVpwWjNWeVlYUnBiMjR1WUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1YyVWdaRzl1SjNRZ2JtVmxaQ0IwYnlCeVpXbHVhWFJwWVd4cGVtVWdhV1lnZDJVbmRtVWdZV3h5WldGa2VTQnBibWwwYVdGc2FYcGxaQ0JtYjNJZ2RHaHBjeUJrWVhSaExseHVJQ0FnSUdsbUlDaDBhR2x6TGxnZ1BUMDlJRmdnSmlZZ2RHaHBjeTVwYzBsdWFYUnBZV3hwZW1Wa0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVuWlhST1JYQnZZMmh6S0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NVlJRDBnV0R0Y2JseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cmJtNUpibVJwWTJWeklDWW1JQ0YwYUdsekxtdHVia1JwYzNSaGJtTmxjeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhMjV1VW1WemRXeDBjeUE5SUhSb2FYTXVibVZoY21WemRFNWxhV2RvWW05eWN5aFlLVHRjYmlBZ0lDQWdJSFJvYVhNdWEyNXVTVzVrYVdObGN5QTlJR3R1YmxKbGMzVnNkSE11YTI1dVNXNWthV05sY3p0Y2JpQWdJQ0FnSUhSb2FYTXVhMjV1UkdsemRHRnVZMlZ6SUQwZ2EyNXVVbVZ6ZFd4MGN5NXJibTVFYVhOMFlXNWpaWE03WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1bmNtRndhQ0E5SUhSb2FYTXVablY2ZW5sVGFXMXdiR2xqYVdGc1UyVjBLRnh1SUNBZ0lDQWdXQ3hjYmlBZ0lDQWdJSFJvYVhNdWJrNWxhV2RvWW05eWN5eGNiaUFnSUNBZ0lIUm9hWE11YzJWMFQzQk5hWGhTWVhScGIxeHVJQ0FnSUNrN1hHNWNiaUFnSUNBdkx5QlRaWFFnZFhBZ2RHaGxJSE5sWVhKamFDQm5jbUZ3YUNCbWIzSWdjM1ZpYzJWeGRXVnVkQ0IwY21GdWMyWnZjbTFoZEdsdmJpNWNiaUFnSUNCMGFHbHpMbTFoYTJWVFpXRnlZMmhHYm5Nb0tUdGNiaUFnSUNCMGFHbHpMbk5sWVhKamFFZHlZWEJvSUQwZ2RHaHBjeTV0WVd0bFUyVmhjbU5vUjNKaGNHZ29XQ2s3WEc1Y2JpQWdJQ0F2THlCRGFHVmpheUJwWmlCemRYQmxjblpwYzJWa0lIQnliMnBsWTNScGIyNHNJSFJvWlc0Z1lXUnFkWE4wSUhSb1pTQm5jbUZ3YUM1Y2JpQWdJQ0IwYUdsekxuQnliMk5sYzNOSGNtRndhRVp2Y2xOMWNHVnlkbWx6WldSUWNtOXFaV04wYVc5dUtDazdYRzVjYmlBZ0lDQmpiMjV6ZENCN1hHNGdJQ0FnSUNCb1pXRmtMRnh1SUNBZ0lDQWdkR0ZwYkN4Y2JpQWdJQ0FnSUdWd2IyTm9jMUJsY2xOaGJYQnNaU3hjYmlBZ0lDQjlJRDBnZEdocGN5NXBibWwwYVdGc2FYcGxVMmx0Y0d4cFkybGhiRk5sZEVWdFltVmtaR2x1WnlncE8xeHVYRzRnSUNBZ0x5OGdVMlYwSUhSb1pTQnZjSFJwYldsNllYUnBiMjRnY205MWRHbHVaU0J6ZEdGMFpWeHVJQ0FnSUhSb2FYTXViM0IwYVcxcGVtRjBhVzl1VTNSaGRHVXVhR1ZoWkNBOUlHaGxZV1E3WEc0Z0lDQWdkR2hwY3k1dmNIUnBiV2w2WVhScGIyNVRkR0YwWlM1MFlXbHNJRDBnZEdGcGJEdGNiaUFnSUNCMGFHbHpMbTl3ZEdsdGFYcGhkR2x2YmxOMFlYUmxMbVZ3YjJOb2MxQmxjbE5oYlhCc1pTQTlJR1Z3YjJOb2MxQmxjbE5oYlhCc1pUdGNibHh1SUNBZ0lDOHZJRTV2ZHl3Z2FXNXBkR2xoYkdsNlpTQjBhR1VnYjNCMGFXMXBlbUYwYVc5dUlITjBaWEJ6WEc0Z0lDQWdkR2hwY3k1cGJtbDBhV0ZzYVhwbFQzQjBhVzFwZW1GMGFXOXVLQ2s3WEc0Z0lDQWdkR2hwY3k1d2NtVndZWEpsUm05eVQzQjBhVzFwZW1GMGFXOXVURzl2Y0NncE8xeHVJQ0FnSUhSb2FYTXVhWE5KYm1sMGFXRnNhWHBsWkNBOUlIUnlkV1U3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpYUk9SWEJ2WTJoektDazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRzFoYTJWVFpXRnlZMmhHYm5Nb0tTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCcGJtbDBSbkp2YlZSeVpXVXNJR2x1YVhSR2NtOXRVbUZ1Wkc5dElIMGdQU0J1YmtSbGMyTmxiblF1YldGclpVbHVhWFJwWVd4cGVtRjBhVzl1Y3loY2JpQWdJQ0FnSUhSb2FYTXVaR2x6ZEdGdVkyVkdibHh1SUNBZ0lDazdYRzRnSUNBZ2RHaHBjeTVwYm1sMFJuSnZiVlJ5WldVZ1BTQnBibWwwUm5KdmJWUnlaV1U3WEc0Z0lDQWdkR2hwY3k1cGJtbDBSbkp2YlZKaGJtUnZiU0E5SUdsdWFYUkdjbTl0VW1GdVpHOXRPMXh1SUNBZ0lIUm9hWE11YzJWaGNtTm9JRDBnYm01RVpYTmpaVzUwTG0xaGEyVkpibWwwYVdGc2FYcGxaRTVPVTJWaGNtTm9LSFJvYVhNdVpHbHpkR0Z1WTJWR2JpazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRzFoYTJWVFpXRnlZMmhIY21Gd2FDaFlPaUJXWldOMGIzSXBJSHRjYmlBZ0lDQmpiMjV6ZENCcmJtNUpibVJwWTJWeklEMGdkR2hwY3k1cmJtNUpibVJwWTJWeklUdGNiaUFnSUNCamIyNXpkQ0JyYm01RWFYTjBZVzVqWlhNZ1BTQjBhR2x6TG10dWJrUnBjM1JoYm1ObGN5RTdYRzRnSUNBZ1kyOXVjM1FnWkdsdGN5QTlJRnRZTG14bGJtZDBhQ3dnV0M1c1pXNW5kR2hkTzF4dUlDQWdJR052Ym5OMElITmxZWEpqYUVkeVlYQm9JRDBnYm1WM0lHMWhkSEpwZUM1VGNHRnljMlZOWVhSeWFYZ29XMTBzSUZ0ZExDQmJYU3dnWkdsdGN5azdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnJibTVKYm1ScFkyVnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JyYm00Z1BTQnJibTVKYm1ScFkyVnpXMmxkTzF4dUlDQWdJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVnpJRDBnYTI1dVJHbHpkR0Z1WTJWelcybGRPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhaUE5SURBN0lHb2dQQ0JyYm00dWJHVnVaM1JvT3lCcUt5c3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdibVZwWjJoaWIzSWdQU0JyYm01YmFsMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUnBjM1JoYm1ObElEMGdaR2x6ZEdGdVkyVnpXMnBkTzF4dUlDQWdJQ0FnSUNCcFppQW9aR2x6ZEdGdVkyVWdQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdjMlZoY21Ob1IzSmhjR2d1YzJWMEtHa3NJRzVsYVdkb1ltOXlMQ0JrYVhOMFlXNWpaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQjBjbUZ1YzNCdmMyVWdQU0J0WVhSeWFYZ3VkSEpoYm5Od2IzTmxLSE5sWVhKamFFZHlZWEJvS1R0Y2JpQWdJQ0J5WlhSMWNtNGdiV0YwY21sNExtMWhlR2x0ZFcwb2MyVmhjbU5vUjNKaGNHZ3NJSFJ5WVc1emNHOXpaU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZISmhibk5tYjNKdGN5QmtZWFJoSUhSdklIUm9aU0JsZUdsemRHbHVaeUJsYldKbFpHUnBibWNnYzNCaFkyVXVYRzRnSUNBcUwxeHVJQ0IwY21GdWMyWnZjbTBvZEc5VWNtRnVjMlp2Y20wNklGWmxZM1J2Y2lrZ2UxeHVJQ0FnSUM4dklGVnpaU0IwYUdVZ2NISmxkbWx2ZFhNZ2NtRjNSR0YwWVZ4dUlDQWdJR052Ym5OMElISmhkMFJoZEdFZ1BTQjBhR2x6TGxnN1hHNGdJQ0FnYVdZZ0tISmhkMFJoZEdFZ1BUMDlJSFZ1WkdWbWFXNWxaQ0I4ZkNCeVlYZEVZWFJoTG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZE9ieUJrWVhSaElHaGhjeUJpWldWdUlHWnBkQzRuS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JzWlhRZ2JrNWxhV2RvWW05eWN5QTlJRTFoZEdndVpteHZiM0lvZEdocGN5NXVUbVZwWjJoaWIzSnpJQ29nZEdocGN5NTBjbUZ1YzJadmNtMVJkV1YxWlZOcGVtVXBPMXh1SUNBZ0lHNU9aV2xuYUdKdmNuTWdQU0JOWVhSb0xtMXBiaWh5WVhkRVlYUmhMbXhsYm1kMGFDd2diazVsYVdkb1ltOXljeWs3WEc0Z0lDQWdZMjl1YzNRZ2FXNXBkQ0E5SUc1dVJHVnpZMlZ1ZEM1cGJtbDBhV0ZzYVhwbFUyVmhjbU5vS0Z4dUlDQWdJQ0FnZEdocGN5NXljRVp2Y21WemRDeGNiaUFnSUNBZ0lISmhkMFJoZEdFc1hHNGdJQ0FnSUNCMGIxUnlZVzV6Wm05eWJTeGNiaUFnSUNBZ0lHNU9aV2xuYUdKdmNuTXNYRzRnSUNBZ0lDQjBhR2x6TG1sdWFYUkdjbTl0VW1GdVpHOXRMRnh1SUNBZ0lDQWdkR2hwY3k1cGJtbDBSbkp2YlZSeVpXVXNYRzRnSUNBZ0lDQjBhR2x6TG5KaGJtUnZiVnh1SUNBZ0lDazdYRzVjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCMGFHbHpMbk5sWVhKamFDaHlZWGRFWVhSaExDQjBhR2x6TG5ObFlYSmphRWR5WVhCb0xDQnBibWwwTENCMGIxUnlZVzV6Wm05eWJTazdYRzVjYmlBZ0lDQnNaWFFnZXlCcGJtUnBZMlZ6TENCM1pXbG5hSFJ6T2lCa2FYTjBZVzVqWlhNZ2ZTQTlJR2hsWVhBdVpHVm9aV0Z3VTI5eWRDaHlaWE4xYkhRcE8xeHVYRzRnSUNBZ2FXNWthV05sY3lBOUlHbHVaR2xqWlhNdWJXRndLSGdnUFQ0Z2VDNXpiR2xqWlNnd0xDQjBhR2x6TG01T1pXbG5hR0p2Y25NcEtUdGNiaUFnSUNCa2FYTjBZVzVqWlhNZ1BTQmthWE4wWVc1alpYTXViV0Z3S0hnZ1BUNGdlQzV6YkdsalpTZ3dMQ0IwYUdsekxtNU9aV2xuYUdKdmNuTXBLVHRjYmx4dUlDQWdJR052Ym5OMElHRmthblZ6ZEdWa1RHOWpZV3hEYjI1dVpXTjBhWFpwZEhrZ1BTQk5ZWFJvTG0xaGVDZ3dMQ0IwYUdsekxteHZZMkZzUTI5dWJtVmpkR2wyYVhSNUlDMGdNU2s3WEc0Z0lDQWdZMjl1YzNRZ2V5QnphV2R0WVhNc0lISm9iM01nZlNBOUlIUm9hWE11YzIxdmIzUm9TMDVPUkdsemRHRnVZMlVvWEc0Z0lDQWdJQ0JrYVhOMFlXNWpaWE1zWEc0Z0lDQWdJQ0IwYUdsekxtNU9aV2xuYUdKdmNuTXNYRzRnSUNBZ0lDQmhaR3AxYzNSbFpFeHZZMkZzUTI5dWJtVmpkR2wyYVhSNVhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSHNnY205M2N5d2dZMjlzY3l3Z2RtRnNjeUI5SUQwZ2RHaHBjeTVqYjIxd2RYUmxUV1Z0WW1WeWMyaHBjRk4wY21WdVozUm9jeWhjYmlBZ0lDQWdJR2x1WkdsalpYTXNYRzRnSUNBZ0lDQmthWE4wWVc1alpYTXNYRzRnSUNBZ0lDQnphV2R0WVhNc1hHNGdJQ0FnSUNCeWFHOXpYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHTnZibk4wSUhOcGVtVWdQU0JiZEc5VWNtRnVjMlp2Y20wdWJHVnVaM1JvTENCeVlYZEVZWFJoTG14bGJtZDBhRjA3WEc0Z0lDQWdiR1YwSUdkeVlYQm9JRDBnYm1WM0lHMWhkSEpwZUM1VGNHRnljMlZOWVhSeWFYZ29jbTkzY3l3Z1kyOXNjeXdnZG1Gc2N5d2djMmw2WlNrN1hHNWNiaUFnSUNBdkx5QlVhR2x6SUhkaGN5QmhJSFpsY25rZ2MzQmxZMmxoYkd4NUlHTnZibk4wY25WamRHVmtJR2R5WVhCb0lIZHBkR2dnWTI5dWMzUmhiblFnWkdWbmNtVmxMbHh1SUNBZ0lDOHZJRlJvWVhRZ2JHVjBjeUIxY3lCa2J5Qm1ZVzVqZVNCMWJuQmhZMnRwYm1jZ1lua2djbVZ6YUdGd2FXNW5JSFJvWlNCamMzSWdiV0YwY21sNElHbHVaR2xqWlhOY2JpQWdJQ0F2THlCaGJtUWdaR0YwWVM0Z1JHOXBibWNnYzI4Z2NtVnNhV1Z6SUc5dUlIUm9aU0JqYjI1emRHRnVkQ0JrWldkeVpXVWdZWE56ZFcxd2RHbHZiaUZjYmx4dUlDQWdJR052Ym5OMElHNXZjbTFsWkNBOUlHMWhkSEpwZUM1dWIzSnRZV3hwZW1Vb1ozSmhjR2dzSUcxaGRISnBlQzVPYjNKdFZIbHdaUzVzTVNrN1hHNWNiaUFnSUNCamIyNXpkQ0JqYzNKTllYUnlhWGdnUFNCdFlYUnlhWGd1WjJWMFExTlNLRzV2Y20xbFpDazdYRzRnSUNBZ1kyOXVjM1FnYmxCdmFXNTBjeUE5SUhSdlZISmhibk5tYjNKdExteGxibWQwYUR0Y2JseHVJQ0FnSUdOdmJuTjBJR1ZKYm1ScFkyVnpJRDBnZFhScGJITXVjbVZ6YUdGd1pUSmtLRnh1SUNBZ0lDQWdZM055VFdGMGNtbDRMbWx1WkdsalpYTXNYRzRnSUNBZ0lDQnVVRzlwYm5SekxGeHVJQ0FnSUNBZ2RHaHBjeTV1VG1WcFoyaGliM0p6WEc0Z0lDQWdLVHRjYmx4dUlDQWdJR052Ym5OMElHVlhaV2xuYUhSeklEMGdkWFJwYkhNdWNtVnphR0Z3WlRKa0tGeHVJQ0FnSUNBZ1kzTnlUV0YwY21sNExuWmhiSFZsY3l4Y2JpQWdJQ0FnSUc1UWIybHVkSE1zWEc0Z0lDQWdJQ0IwYUdsekxtNU9aV2xuYUdKdmNuTmNiaUFnSUNBcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWlcxaVpXUmthVzVuSUQwZ2FXNXBkRlJ5WVc1elptOXliU2hsU1c1a2FXTmxjeXdnWlZkbGFXZG9kSE1zSUhSb2FYTXVaVzFpWldSa2FXNW5LVHRjYmx4dUlDQWdJR052Ym5OMElHNUZjRzlqYUhNZ1BTQjBhR2x6TG01RmNHOWphSE5jYmlBZ0lDQWdJRDhnZEdocGN5NXVSWEJ2WTJoeklDOGdNMXh1SUNBZ0lDQWdPaUJuY21Gd2FDNXVVbTkzY3lBOFBTQXhNREF3TUZ4dUlDQWdJQ0FnUHlBeE1EQmNiaUFnSUNBZ0lEb2dNekE3WEc1Y2JpQWdJQ0JqYjI1emRDQm5jbUZ3YUUxaGVDQTlJR2R5WVhCb1hHNGdJQ0FnSUNBdVoyVjBWbUZzZFdWektDbGNiaUFnSUNBZ0lDNXlaV1IxWTJVb0tHMWhlQ3dnZG1Gc0tTQTlQaUFvZG1Gc0lENGdiV0Y0SUQ4Z2RtRnNJRG9nYldGNEtTd2dNQ2s3WEc0Z0lDQWdaM0poY0dnZ1BTQm5jbUZ3YUM1dFlYQW9kbUZzZFdVZ1BUNGdLSFpoYkhWbElEd2daM0poY0doTllYZ2dMeUJ1UlhCdlkyaHpJRDhnTUNBNklIWmhiSFZsS1NrN1hHNGdJQ0FnWjNKaGNHZ2dQU0J0WVhSeWFYZ3VaV3hwYldsdVlYUmxXbVZ5YjNNb1ozSmhjR2dwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaWEJ2WTJoelVHVnlVMkZ0Y0d4bElEMGdkR2hwY3k1dFlXdGxSWEJ2WTJoelVHVnlVMkZ0Y0d4bEtGeHVJQ0FnSUNBZ1ozSmhjR2d1WjJWMFZtRnNkV1Z6S0Nrc1hHNGdJQ0FnSUNCdVJYQnZZMmh6WEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCb1pXRmtJRDBnWjNKaGNHZ3VaMlYwVW05M2N5Z3BPMXh1SUNBZ0lHTnZibk4wSUhSaGFXd2dQU0JuY21Gd2FDNW5aWFJEYjJ4ektDazdYRzVjYmlBZ0lDQXZMeUJKYm1sMGFXRnNhWHBsSUc5d2RHbHRhWHBoZEdsdmJpQnpiR2xuYUhSc2VTQmthV1ptWlhKbGJuUnNlU0IwYUdGdUlIUm9aU0JtYVhRZ2JXVjBhRzlrTGx4dUlDQWdJSFJvYVhNdVlYTnphV2R1VDNCMGFXMXBlbUYwYVc5dVUzUmhkR1ZRWVhKaGJXVjBaWEp6S0h0Y2JpQWdJQ0FnSUdobFlXUkZiV0psWkdScGJtYzZJR1Z0WW1Wa1pHbHVaeXhjYmlBZ0lDQWdJSFJoYVd4RmJXSmxaR1JwYm1jNklIUm9hWE11WlcxaVpXUmthVzVuTEZ4dUlDQWdJQ0FnYUdWaFpDeGNiaUFnSUNBZ0lIUmhhV3dzWEc0Z0lDQWdJQ0JqZFhKeVpXNTBSWEJ2WTJnNklEQXNYRzRnSUNBZ0lDQnVSWEJ2WTJoekxGeHVJQ0FnSUNBZ2JsWmxjblJwWTJWek9pQm5jbUZ3YUM1blpYUkVhVzF6S0NsYk1WMHNYRzRnSUNBZ0lDQmxjRzlqYUhOUVpYSlRZVzF3YkdVc1hHNGdJQ0FnZlNrN1hHNGdJQ0FnZEdocGN5NXdjbVZ3WVhKbFJtOXlUM0IwYVcxcGVtRjBhVzl1VEc5dmNDZ3BPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YjNCMGFXMXBlbVZNWVhsdmRYUW9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGFHVmphM01nYVdZZ2QyVW5jbVVnZFhOcGJtY2djM1Z3WlhKMmFYTmxaQ0J3Y205cVpXTjBhVzl1TENCMGFHVnVJSEJ5YjJObGMzTWdkR2hsSUdkeVlYQm9YRzRnSUNBcUlHRmpZMjl5WkdsdVoyeDVMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0J3Y205alpYTnpSM0poY0doR2IzSlRkWEJsY25acGMyVmtVSEp2YW1WamRHbHZiaWdwSUh0Y2JpQWdJQ0JqYjI1emRDQjdJRmtzSUZnZ2ZTQTlJSFJvYVhNN1hHNGdJQ0FnYVdZZ0tGa3BJSHRjYmlBZ0lDQWdJR2xtSUNoWkxteGxibWQwYUNBaFBUMGdXQzVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RNWlc1bmRHZ2diMllnV0NCaGJtUWdlU0J0ZFhOMElHSmxJR1Z4ZFdGc0p5azdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMblJoY21kbGRFMWxkSEpwWXlBOVBUMGdWR0Z5WjJWMFRXVjBjbWxqTG1OaGRHVm5iM0pwWTJGc0tTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHeDBJRDBnZEdocGN5NTBZWEpuWlhSWFpXbG5hSFFnUENBeExqQTdYRzRnSUNBZ0lDQWdJR052Ym5OMElHWmhja1JwYzNRZ1BTQnNkQ0EvSURJdU5TQXFJQ2d4TGpBZ0x5QW9NUzR3SUMwZ2RHaHBjeTUwWVhKblpYUlhaV2xuYUhRcEtTQTZJREV1TUdVeE1qdGNiaUFnSUNBZ0lDQWdkR2hwY3k1bmNtRndhQ0E5SUhSb2FYTXVZMkYwWldkdmNtbGpZV3hUYVcxd2JHbGphV0ZzVTJWMFNXNTBaWEp6WldOMGFXOXVLRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVaM0poY0dnc1hHNGdJQ0FnSUNBZ0lDQWdXU3hjYmlBZ0lDQWdJQ0FnSUNCbVlYSkVhWE4wWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNBdkx5QlVUMFJQSUNoaGJtUjVZMjlsYm1WdVFDazZJR0ZrWkNCdWIyNHRZMkYwWldkdmNtbGpZV3dnYzNWd1pYSjJhWE5sWkNCbGJXSmxaR1JwYm1kekxseHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQk5ZVzUxWVd4c2VTQnpkR1Z3SUhSb2NtOTFaMmdnZEdobElHOXdkR2x0YVhwaGRHbHZiaUJ3Y205alpYTnpJRzl1WlNCbGNHOWphQ0JoZENCaElIUnBiV1V1WEc0Z0lDQXFMMXh1SUNCemRHVndLQ2tnZTF4dUlDQWdJR052Ym5OMElIc2dZM1Z5Y21WdWRFVndiMk5vSUgwZ1BTQjBhR2x6TG05d2RHbHRhWHBoZEdsdmJsTjBZWFJsTzF4dVhHNGdJQ0FnYVdZZ0tHTjFjbkpsYm5SRmNHOWphQ0E4SUhSb2FYTXVaMlYwVGtWd2IyTm9jeWdwS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbTl3ZEdsdGFYcGxUR0Y1YjNWMFUzUmxjQ2hqZFhKeVpXNTBSWEJ2WTJncE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dmNIUnBiV2w2WVhScGIyNVRkR0YwWlM1amRYSnlaVzUwUlhCdlkyZzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUIwYUdVZ1kyOXRjSFYwWldRZ2NISnZhbVZqZEdWa0lHVnRZbVZrWkdsdVp5NWNiaUFnSUNvdlhHNGdJR2RsZEVWdFltVmtaR2x1WnlncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWxiV0psWkdScGJtYzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTI5dGNIVjBaU0IwYUdVZ1lHQnVUbVZwWjJoaWIzSnpZR0FnYm1WaGNtVnpkQ0J3YjJsdWRITWdabTl5SUdWaFkyZ2daR0YwWVNCd2IybHVkQ0JwYmlCZ1lGaGdZRnh1SUNBZ0tpQlVhR2x6SUcxaGVTQmlaU0JsZUdGamRDd2dZblYwSUcxdmNtVWdiR2xyWld4NUlHbHpJR0Z3Y0hKdmVHbHRZWFJsWkNCMmFXRWdibVZoY21WemRDQnVaV2xuYUdKdmNseHVJQ0FnS2lCa1pYTmpaVzUwTGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCdVpXRnlaWE4wVG1WcFoyaGliM0p6S0ZnNklGWmxZM1J2Y2lrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnWkdsemRHRnVZMlZHYml3Z2JrNWxhV2RvWW05eWN5QjlJRDBnZEdocGN6dGNiaUFnSUNCamIyNXpkQ0JzYjJjeUlEMGdLRzQ2SUc1MWJXSmxjaWtnUFQ0Z1RXRjBhQzVzYjJjb2Jpa2dMeUJOWVhSb0xteHZaeWd5S1R0Y2JpQWdJQ0JqYjI1emRDQnRaWFJ5YVdOT1RrUmxjMk5sYm5RZ1BTQnVia1JsYzJObGJuUXViV0ZyWlU1T1JHVnpZMlZ1ZENoa2FYTjBZVzVqWlVadUxDQjBhR2x6TG5KaGJtUnZiU2s3WEc1Y2JpQWdJQ0F2THlCSVlXNWtiR1VnY0hsMGFHOXVNeUJ5YjNWdVpHbHVaeUJrYjNkdUlHWnliMjBnTUM0MUlHUnBjMk55Y0dGdVkzbGNiaUFnSUNCamIyNXpkQ0J5YjNWdVpDQTlJQ2h1T2lCdWRXMWlaWElwSUQwK0lIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdUlEMDlQU0F3TGpVZ1B5QXdJRG9nVFdGMGFDNXliM1Z1WkNodUtUdGNiaUFnSUNCOU8xeHVYRzRnSUNBZ1kyOXVjM1FnYmxSeVpXVnpJRDBnTlNBcklFMWhkR2d1Wm14dmIzSW9jbTkxYm1Rb1dDNXNaVzVuZEdnZ0tpb2dNQzQxSUM4Z01qQXVNQ2twTzF4dUlDQWdJR052Ym5OMElHNUpkR1Z5Y3lBOUlFMWhkR2d1YldGNEtEVXNJRTFoZEdndVpteHZiM0lvVFdGMGFDNXliM1Z1WkNoc2IyY3lLRmd1YkdWdVozUm9LU2twS1R0Y2JseHVJQ0FnSUhSb2FYTXVjbkJHYjNKbGMzUWdQU0IwY21WbExtMWhhMlZHYjNKbGMzUW9XQ3dnYms1bGFXZG9ZbTl5Y3l3Z2JsUnlaV1Z6TENCMGFHbHpMbkpoYm1SdmJTazdYRzVjYmlBZ0lDQmpiMjV6ZENCc1pXRm1RWEp5WVhrZ1BTQjBjbVZsTG0xaGEyVk1aV0ZtUVhKeVlYa29kR2hwY3k1eWNFWnZjbVZ6ZENrN1hHNGdJQ0FnWTI5dWMzUWdleUJwYm1ScFkyVnpMQ0IzWldsbmFIUnpJSDBnUFNCdFpYUnlhV05PVGtSbGMyTmxiblFvWEc0Z0lDQWdJQ0JZTEZ4dUlDQWdJQ0FnYkdWaFprRnljbUY1TEZ4dUlDQWdJQ0FnYms1bGFXZG9ZbTl5Y3l4Y2JpQWdJQ0FnSUc1SmRHVnljMXh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhzZ2EyNXVTVzVrYVdObGN6b2dhVzVrYVdObGN5d2dhMjV1UkdsemRHRnVZMlZ6T2lCM1pXbG5hSFJ6SUgwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMmwyWlc0Z1lTQnpaWFFnYjJZZ1pHRjBZU0JZTENCaElHNWxhV2RvWW05eWFHOXZaQ0J6YVhwbExDQmhibVFnWVNCdFpXRnpkWEpsSUc5bUlHUnBjM1JoYm1ObFhHNGdJQ0FxSUdOdmJYQjFkR1VnZEdobElHWjFlbnA1SUhOcGJYQnNhV05wWVd3Z2MyVjBJQ2hvWlhKbElISmxjSEpsYzJWdWRHVmtJR0Z6SUdFZ1puVjZlbmtnWjNKaGNHZ2dhVzVjYmlBZ0lDb2dkR2hsSUdadmNtMGdiMllnWVNCemNHRnljMlVnYldGMGNtbDRLU0JoYzNOdlkybGhkR1ZrSUhSdklIUm9aU0JrWVhSaExpQlVhR2x6SUdseklHUnZibVVnWW5sY2JpQWdJQ29nYkc5allXeHNlU0JoY0hCeWIzaHBiV0YwYVc1bklHZGxiMlJsYzJsaklHUnBjM1JoYm1ObElHRjBJR1ZoWTJnZ2NHOXBiblFzSUdOeVpXRjBhVzVuSUdFZ1puVjZlbmxjYmlBZ0lDb2djMmx0Y0d4cFkybGhiQ0J6WlhRZ1ptOXlJR1ZoWTJnZ2MzVmphQ0J3YjJsdWRDd2dZVzVrSUhSb1pXNGdZMjl0WW1sdWFXNW5JR0ZzYkNCMGFHVWdiRzlqWVd4Y2JpQWdJQ29nWm5WNmVua2djMmx0Y0d4cFkybGhiQ0J6WlhSeklHbHVkRzhnWVNCbmJHOWlZV3dnYjI1bElIWnBZU0JoSUdaMWVucDVJSFZ1YVc5dUxseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQm1kWHA2ZVZOcGJYQnNhV05wWVd4VFpYUW9YRzRnSUNBZ1dEb2dWbVZqZEc5eUxGeHVJQ0FnSUc1T1pXbG5hR0p2Y25NNklHNTFiV0psY2l4Y2JpQWdJQ0J6WlhSUGNFMXBlRkpoZEdsdklEMGdNUzR3WEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUhzZ2EyNXVTVzVrYVdObGN5QTlJRnRkTENCcmJtNUVhWE4wWVc1alpYTWdQU0JiWFN3Z2JHOWpZV3hEYjI1dVpXTjBhWFpwZEhrZ2ZTQTlJSFJvYVhNN1hHNWNiaUFnSUNCamIyNXpkQ0I3SUhOcFoyMWhjeXdnY21odmN5QjlJRDBnZEdocGN5NXpiVzl2ZEdoTFRrNUVhWE4wWVc1alpTaGNiaUFnSUNBZ0lHdHVia1JwYzNSaGJtTmxjeXhjYmlBZ0lDQWdJRzVPWldsbmFHSnZjbk1zWEc0Z0lDQWdJQ0JzYjJOaGJFTnZibTVsWTNScGRtbDBlVnh1SUNBZ0lDazdYRzVjYmlBZ0lDQmpiMjV6ZENCN0lISnZkM01zSUdOdmJITXNJSFpoYkhNZ2ZTQTlJSFJvYVhNdVkyOXRjSFYwWlUxbGJXSmxjbk5vYVhCVGRISmxibWQwYUhNb1hHNGdJQ0FnSUNCcmJtNUpibVJwWTJWekxGeHVJQ0FnSUNBZ2EyNXVSR2x6ZEdGdVkyVnpMRnh1SUNBZ0lDQWdjMmxuYldGekxGeHVJQ0FnSUNBZ2NtaHZjMXh1SUNBZ0lDazdYRzVjYmlBZ0lDQmpiMjV6ZENCemFYcGxJRDBnVzFndWJHVnVaM1JvTENCWUxteGxibWQwYUYwN1hHNGdJQ0FnWTI5dWMzUWdjM0JoY25ObFRXRjBjbWw0SUQwZ2JtVjNJRzFoZEhKcGVDNVRjR0Z5YzJWTllYUnlhWGdvY205M2N5d2dZMjlzY3l3Z2RtRnNjeXdnYzJsNlpTazdYRzVjYmlBZ0lDQmpiMjV6ZENCMGNtRnVjM0J2YzJVZ1BTQnRZWFJ5YVhndWRISmhibk53YjNObEtITndZWEp6WlUxaGRISnBlQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NISnZaRTFoZEhKcGVDQTlJRzFoZEhKcGVDNXdZV2x5ZDJselpVMTFiSFJwY0d4NUtITndZWEp6WlUxaGRISnBlQ3dnZEhKaGJuTndiM05sS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR0VnUFNCdFlYUnlhWGd1YzNWaWRISmhZM1FvYldGMGNtbDRMbUZrWkNoemNHRnljMlZOWVhSeWFYZ3NJSFJ5WVc1emNHOXpaU2tzSUhCeWIyUk5ZWFJ5YVhncE8xeHVJQ0FnSUdOdmJuTjBJR0lnUFNCdFlYUnlhWGd1YlhWc2RHbHdiSGxUWTJGc1lYSW9ZU3dnYzJWMFQzQk5hWGhTWVhScGJ5azdYRzRnSUNBZ1kyOXVjM1FnWXlBOUlHMWhkSEpwZUM1dGRXeDBhWEJzZVZOallXeGhjaWh3Y205a1RXRjBjbWw0TENBeExqQWdMU0J6WlhSUGNFMXBlRkpoZEdsdktUdGNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0J0WVhSeWFYZ3VZV1JrS0dJc0lHTXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiMjFpYVc1bElHRWdablY2ZW5rZ2MybHRjR3hwWTJsaGJDQnpaWFFnZDJsMGFDQmhibTkwYUdWeUlHWjFlbnA1SUhOcGJYQnNhV05wWVd3Z2MyVjBYRzRnSUNBcUlHZGxibVZ5WVhSbFpDQm1jbTl0SUdOaGRHVm5iM0pwWTJGc0lHUmhkR0VnZFhOcGJtY2dZMkYwWldkdmNtbGpZV3dnWkdsemRHRnVZMlZ6TGlCVWFHVWdkR0Z5WjJWMFhHNGdJQ0FxSUdSaGRHRWdhWE1nWVhOemRXMWxaQ0IwYnlCaVpTQmpZWFJsWjI5eWFXTmhiQ0JzWVdKbGJDQmtZWFJoSUNoaElIWmxZM1J2Y2lCdlppQnNZV0psYkhNcExGeHVJQ0FnS2lCaGJtUWdkR2hwY3lCM2FXeHNJSFZ3WkdGMFpTQjBhR1VnWm5WNmVua2djMmx0Y0d4cFkybGhiQ0J6WlhRZ2RHOGdjbVZ6Y0dWamRDQjBhR0YwSUd4aFltVnNJR1JoZEdFdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTmhkR1ZuYjNKcFkyRnNVMmx0Y0d4cFkybGhiRk5sZEVsdWRHVnljMlZqZEdsdmJpaGNiaUFnSUNCemFXMXdiR2xqYVdGc1UyVjBPaUJ0WVhSeWFYZ3VVM0JoY25ObFRXRjBjbWw0TEZ4dUlDQWdJSFJoY21kbGREb2diblZ0WW1WeVcxMHNYRzRnSUNBZ1ptRnlSR2x6ZERvZ2JuVnRZbVZ5TEZ4dUlDQWdJSFZ1YTI1dmQyNUVhWE4wSUQwZ01TNHdYRzRnSUNrZ2UxeHVJQ0FnSUd4bGRDQnBiblJsY25ObFkzUnBiMjRnUFNCbVlYTjBTVzUwWlhKelpXTjBhVzl1S0Z4dUlDQWdJQ0FnYzJsdGNHeHBZMmxoYkZObGRDeGNiaUFnSUNBZ0lIUmhjbWRsZEN4Y2JpQWdJQ0FnSUhWdWEyNXZkMjVFYVhOMExGeHVJQ0FnSUNBZ1ptRnlSR2x6ZEZ4dUlDQWdJQ2s3WEc0Z0lDQWdhVzUwWlhKelpXTjBhVzl1SUQwZ2JXRjBjbWw0TG1Wc2FXMXBibUYwWlZwbGNtOXpLR2x1ZEdWeWMyVmpkR2x2YmlrN1hHNGdJQ0FnY21WMGRYSnVJSEpsYzJWMFRHOWpZV3hEYjI1dVpXTjBhWFpwZEhrb2FXNTBaWEp6WldOMGFXOXVLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGIyMXdkWFJsSUdFZ1kyOXVkR2x1ZFc5MWN5QjJaWEp6YVc5dUlHOW1JSFJvWlNCa2FYTjBZVzVqWlNCMGJ5QjBhR1VnYTNSb0lHNWxZWEpsYzNSY2JpQWdJQ29nYm1WcFoyaGliM0l1SUZSb1lYUWdhWE1zSUhSb2FYTWdhWE1nYzJsdGFXeGhjaUIwYnlCcmJtNHRaR2x6ZEdGdVkyVWdZblYwSUdGc2JHOTNjeUJqYjI1MGFXNTFiM1Z6WEc0Z0lDQXFJR3NnZG1Gc2RXVnpJSEpoZEdobGNpQjBhR0Z1SUhKbGNYVnBjbWx1WnlCaGJpQnBiblJsWjNKaGJDQnJMaUJKYmlCbGMzTmpaVzVqWlNCM1pTQmhjbVVnYzJsdGNHeDVYRzRnSUNBcUlHTnZiWEIxZEdsdVp5QjBhR1VnWkdsemRHRnVZMlVnYzNWamFDQjBhR0YwSUhSb1pTQmpZWEprYVc1aGJHbDBlU0J2WmlCbWRYcDZlU0J6WlhRZ2QyVWdaMlZ1WlhKaGRHVmNiaUFnSUNvZ2FYTWdheTVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnYzIxdmIzUm9TMDVPUkdsemRHRnVZMlVvWEc0Z0lDQWdaR2x6ZEdGdVkyVnpPaUJXWldOMGIzSnpMRnh1SUNBZ0lHczZJRzUxYldKbGNpeGNiaUFnSUNCc2IyTmhiRU52Ym01bFkzUnBkbWwwZVNBOUlERXVNQ3hjYmlBZ0lDQnVTWFJsY2lBOUlEWTBMRnh1SUNBZ0lHSmhibVIzYVdSMGFDQTlJREV1TUZ4dUlDQXBJSHRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFFnUFNBb1RXRjBhQzVzYjJjb2F5a2dMeUJOWVhSb0xteHZaeWd5S1NrZ0tpQmlZVzVrZDJsa2RHZzdYRzRnSUNBZ1kyOXVjM1FnY21odklEMGdkWFJwYkhNdWVtVnliM01vWkdsemRHRnVZMlZ6TG14bGJtZDBhQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ2RYUnBiSE11ZW1WeWIzTW9aR2x6ZEdGdVkyVnpMbXhsYm1kMGFDazdYRzVjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JwYzNSaGJtTmxjeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2JHVjBJR3h2SUQwZ01DNHdPMXh1SUNBZ0lDQWdiR1YwSUdocElEMGdTVzVtYVc1cGRIazdYRzRnSUNBZ0lDQnNaWFFnYldsa0lEMGdNUzR3TzF4dVhHNGdJQ0FnSUNBdkx5QlVUMFJQT2lCVWFHbHpJR2x6SUhabGNua2dhVzVsWm1acFkybGxiblFzSUdKMWRDQjNhV3hzSUdSdklHWnZjaUJ1YjNjdUlFWkpXRTFGWEc0Z0lDQWdJQ0JqYjI1emRDQnBkR2hFYVhOMFlXNWpaWE1nUFNCa2FYTjBZVzVqWlhOYmFWMDdYRzRnSUNBZ0lDQmpiMjV6ZENCdWIyNWFaWEp2UkdsemRITWdQU0JwZEdoRWFYTjBZVzVqWlhNdVptbHNkR1Z5S0dRZ1BUNGdaQ0ErSURBdU1DazdYRzVjYmlBZ0lDQWdJR2xtSUNodWIyNWFaWEp2UkdsemRITXViR1Z1WjNSb0lENDlJR3h2WTJGc1EyOXVibVZqZEdsMmFYUjVLU0I3WEc0Z0lDQWdJQ0FnSUd4bGRDQnBibVJsZUNBOUlFMWhkR2d1Wm14dmIzSW9iRzlqWVd4RGIyNXVaV04wYVhacGRIa3BPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FXNTBaWEp3YjJ4aGRHbHZiaUE5SUd4dlkyRnNRMjl1Ym1WamRHbDJhWFI1SUMwZ2FXNWtaWGc3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBibVJsZUNBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCeWFHOWJhVjBnUFNCdWIyNWFaWEp2UkdsemRITmJhVzVrWlhnZ0xTQXhYVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9hVzUwWlhKd2IyeGhkR2x2YmlBK0lGTk5UMDlVU0Y5TFgxUlBURVZTUVU1RFJTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtaHZXMmxkSUNzOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdWRHVnljRzlzWVhScGIyNGdLaUFvYm05dVdtVnliMFJwYzNSelcybHVaR1Y0WFNBdElHNXZibHBsY205RWFYTjBjMXRwYm1SbGVDQXRJREZkS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnY21odlcybGRJRDBnYVc1MFpYSndiMnhoZEdsdmJpQXFJRzV2YmxwbGNtOUVhWE4wYzFzd1hUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU0JsYkhObElHbG1JQ2h1YjI1YVpYSnZSR2x6ZEhNdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdJQ0J5YUc5YmFWMGdQU0IxZEdsc2N5NXRZWGdvYm05dVdtVnliMFJwYzNSektUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdabTl5SUNoc1pYUWdiaUE5SURBN0lHNGdQQ0J1U1hSbGNqc2diaXNyS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J3YzNWdElEMGdNQzR3TzF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcUlEMGdNVHNnYWlBOElHUnBjM1JoYm1ObGMxdHBYUzVzWlc1bmRHZzdJR29yS3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHUWdQU0JrYVhOMFlXNWpaWE5iYVYxYmFsMGdMU0J5YUc5YmFWMDdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHUWdQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3YzNWdElDczlJRTFoZEdndVpYaHdLQzBvWkNBdklHMXBaQ2twTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3YzNWdElDczlJREV1TUR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCcFppQW9UV0YwYUM1aFluTW9jSE4xYlNBdElIUmhjbWRsZENrZ1BDQlRUVTlQVkVoZlMxOVVUMHhGVWtGT1EwVXBJSHRjYmlBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h3YzNWdElENGdkR0Z5WjJWMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYUdrZ1BTQnRhV1E3WEc0Z0lDQWdJQ0FnSUNBZ2JXbGtJRDBnS0d4dklDc2dhR2twSUM4Z01pNHdPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUd4dklEMGdiV2xrTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hvYVNBOVBUMGdTVzVtYVc1cGRIa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHMXBaQ0FxUFNBeU8xeHVJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdGFXUWdQU0FvYkc4Z0t5Qm9hU2tnTHlBeUxqQTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lISmxjM1ZzZEZ0cFhTQTlJRzFwWkR0Y2JseHVJQ0FnSUNBZ0x5OGdWRTlFVHpvZ1ZHaHBjeUJwY3lCMlpYSjVJR2x1WldabWFXTnBaVzUwTENCaWRYUWdkMmxzYkNCa2J5Qm1iM0lnYm05M0xpQkdTVmhOUlZ4dUlDQWdJQ0FnYVdZZ0tISm9iMXRwWFNBK0lEQXVNQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WldGdVNYUm9SR2x6ZEdGdVkyVnpJRDBnZFhScGJITXViV1ZoYmlocGRHaEVhWE4wWVc1alpYTXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2NtVnpkV3gwVzJsZElEd2dUVWxPWDB0ZlJFbFRWRjlUUTBGTVJTQXFJRzFsWVc1SmRHaEVhWE4wWVc1alpYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYTjFiSFJiYVYwZ1BTQk5TVTVmUzE5RVNWTlVYMU5EUVV4RklDb2diV1ZoYmtsMGFFUnBjM1JoYm1ObGN6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXVmhia1JwYzNSaGJtTmxjeUE5SUhWMGFXeHpMbTFsWVc0b1pHbHpkR0Z1WTJWekxtMWhjQ2gxZEdsc2N5NXRaV0Z1S1NrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h5WlhOMWJIUmJhVjBnUENCTlNVNWZTMTlFU1ZOVVgxTkRRVXhGSUNvZ2JXVmhia1JwYzNSaGJtTmxjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEZ0cFhTQTlJRTFKVGw5TFgwUkpVMVJmVTBOQlRFVWdLaUJ0WldGdVJHbHpkR0Z1WTJWek8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhzZ2MybG5iV0Z6T2lCeVpYTjFiSFFzSUhKb2IzTTZJSEpvYnlCOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5OMGNuVmpkQ0IwYUdVZ2JXVnRZbVZ5YzJocGNDQnpkSEpsYm1kMGFDQmtZWFJoSUdadmNpQjBhR1VnTVMxemEyVnNaWFJ2YmlCdlppQmxZV05vSUd4dlkyRnNYRzRnSUNBcUlHWjFlbnA1SUhOcGJYQnNhV05wWVd3Z2MyVjBJQzB0SUhSb2FYTWdhWE1nWm05eWJXVmtJR0Z6SUdFZ2MzQmhjbk5sSUcxaGRISnBlQ0IzYUdWeVpTQmxZV05vSUhKdmR5QnBjMXh1SUNBZ0tpQmhJR3h2WTJGc0lHWjFlbnA1SUhOcGJYQnNhV05wWVd3Z2MyVjBMQ0IzYVhSb0lHRWdiV1Z0WW1WeWMyaHBjQ0J6ZEhKbGJtZDBhQ0JtYjNJZ2RHaGxYRzRnSUNBcUlERXRjMmx0Y0d4bGVDQjBieUJsWVdOb0lHOTBhR1Z5SUdSaGRHRWdjRzlwYm5RdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnZiWEIxZEdWTlpXMWlaWEp6YUdsd1UzUnlaVzVuZEdoektGeHVJQ0FnSUd0dWJrbHVaR2xqWlhNNklGWmxZM1J2Y25Nc1hHNGdJQ0FnYTI1dVJHbHpkR0Z1WTJWek9pQldaV04wYjNKekxGeHVJQ0FnSUhOcFoyMWhjem9nYm5WdFltVnlXMTBzWEc0Z0lDQWdjbWh2Y3pvZ2JuVnRZbVZ5VzExY2JpQWdLVG9nZXlCeWIzZHpPaUJ1ZFcxaVpYSmJYVHNnWTI5c2N6b2diblZ0WW1WeVcxMDdJSFpoYkhNNklHNTFiV0psY2x0ZElIMGdlMXh1SUNBZ0lHTnZibk4wSUc1VFlXMXdiR1Z6SUQwZ2EyNXVTVzVrYVdObGN5NXNaVzVuZEdnN1hHNGdJQ0FnWTI5dWMzUWdiazVsYVdkb1ltOXljeUE5SUd0dWJrbHVaR2xqWlhOYk1GMHViR1Z1WjNSb08xeHVYRzRnSUNBZ1kyOXVjM1FnY205M2N5QTlJSFYwYVd4ekxucGxjbTl6S0c1VFlXMXdiR1Z6SUNvZ2JrNWxhV2RvWW05eWN5azdYRzRnSUNBZ1kyOXVjM1FnWTI5c2N5QTlJSFYwYVd4ekxucGxjbTl6S0c1VFlXMXdiR1Z6SUNvZ2JrNWxhV2RvWW05eWN5azdYRzRnSUNBZ1kyOXVjM1FnZG1Gc2N5QTlJSFYwYVd4ekxucGxjbTl6S0c1VFlXMXdiR1Z6SUNvZ2JrNWxhV2RvWW05eWN5azdYRzVjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzVUWVcxd2JHVnpPeUJwS3lzcElIdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2diazVsYVdkb1ltOXljenNnYWlzcktTQjdYRzRnSUNBZ0lDQWdJR3hsZENCMllXd2dQU0F3TzF4dUlDQWdJQ0FnSUNCcFppQW9hMjV1U1c1a2FXTmxjMXRwWFZ0cVhTQTlQVDBnTFRFcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHNnTHk4Z1YyVWdaR2xrYmlkMElHZGxkQ0IwYUdVZ1puVnNiQ0JyYm00Z1ptOXlJR2xjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9hMjV1U1c1a2FXTmxjMXRwWFZ0cVhTQTlQVDBnYVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFpoYkNBOUlEQXVNRHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNocmJtNUVhWE4wWVc1alpYTmJhVjFiYWwwZ0xTQnlhRzl6VzJsZElEdzlJREF1TUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFpoYkNBOUlERXVNRHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCMllXd2dQU0JOWVhSb0xtVjRjQ2d0S0NocmJtNUVhWE4wWVc1alpYTmJhVjFiYWwwZ0xTQnlhRzl6VzJsZEtTQXZJSE5wWjIxaGMxdHBYU2twTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdjbTkzYzF0cElDb2diazVsYVdkb1ltOXljeUFySUdwZElEMGdhVHRjYmlBZ0lDQWdJQ0FnWTI5c2MxdHBJQ29nYms1bGFXZG9ZbTl5Y3lBcklHcGRJRDBnYTI1dVNXNWthV05sYzF0cFhWdHFYVHRjYmlBZ0lDQWdJQ0FnZG1Gc2MxdHBJQ29nYms1bGFXZG9ZbTl5Y3lBcklHcGRJRDBnZG1Gc08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUI3SUhKdmQzTXNJR052YkhNc0lIWmhiSE1nZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkpibWwwYVdGc2FYcGxJR0VnWm5WNmVua2djMmx0Y0d4cFkybGhiQ0J6WlhRZ1pXMWlaV1JrYVc1bkxDQjFjMmx1WnlCaElITndaV05wWm1sbFpGeHVJQ0FnS2lCcGJtbDBhV0ZzYVhOaGRHbHZiaUJ0WlhSb2IyUWdZVzVrSUhSb1pXNGdiV2x1YVcxcGVtbHVaeUIwYUdVZ1puVjZlbmtnYzJWMElHTnliM056SUdWdWRISnZjSGxjYmlBZ0lDb2dZbVYwZDJWbGJpQjBhR1VnTVMxemEyVnNaWFJ2Ym5NZ2IyWWdkR2hsSUdocFoyZ2dZVzVrSUd4dmR5QmthVzFsYm5OcGIyNWhiQ0JtZFhwNmVTQnphVzF3YkdsamFXRnNYRzRnSUNBcUlITmxkSE11WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUdsdWFYUnBZV3hwZW1WVGFXMXdiR2xqYVdGc1UyVjBSVzFpWldSa2FXNW5LQ2tnZTF4dUlDQWdJR052Ym5OMElHNUZjRzlqYUhNZ1BTQjBhR2x6TG1kbGRFNUZjRzlqYUhNb0tUdGNibHh1SUNBZ0lHTnZibk4wSUhzZ2JrTnZiWEJ2Ym1WdWRITWdmU0E5SUhSb2FYTTdYRzRnSUNBZ1kyOXVjM1FnWjNKaGNHaFdZV3gxWlhNZ1BTQjBhR2x6TG1keVlYQm9MbWRsZEZaaGJIVmxjeWdwTzF4dUlDQWdJR3hsZENCbmNtRndhRTFoZUNBOUlEQTdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQm5jbUZ3YUZaaGJIVmxjeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVWdQU0JuY21Gd2FGWmhiSFZsYzF0cFhUdGNiaUFnSUNBZ0lHbG1JQ2huY21Gd2FFMWhlQ0E4SUdkeVlYQm9WbUZzZFdWelcybGRLU0I3WEc0Z0lDQWdJQ0FnSUdkeVlYQm9UV0Y0SUQwZ2RtRnNkV1U3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1ozSmhjR2dnUFNCMGFHbHpMbWR5WVhCb0xtMWhjQ2gyWVd4MVpTQTlQaUI3WEc0Z0lDQWdJQ0JwWmlBb2RtRnNkV1VnUENCbmNtRndhRTFoZUNBdklHNUZjRzlqYUhNcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEQTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1U3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2THlCWFpTZHlaU0J1YjNRZ1kyOXRjSFYwYVc1bklIUm9aU0J6Y0dWamRISmhiQ0JwYm1sMGFXRnNhWHBoZEdsdmJpQnBiaUIwYUdseklHbHRjR3hsYldWdWRHRjBhVzl1WEc0Z0lDQWdMeThnZFc1MGFXd2dkMlVnWkdWMFpYSnRhVzVsSUdFZ1ltVjBkR1Z5SUdWcFoyVnVkbUZzZFdVdlpXbG5aVzUyWldOMGIzSWdZMjl0Y0hWMFlYUnBiMjVjYmlBZ0lDQXZMeUJoY0hCeWIyRmphRnh1SUNBZ0lIUm9hWE11WlcxaVpXUmthVzVuSUQwZ2RYUnBiSE11ZW1WeWIzTW9aM0poY0dndWJsSnZkM01wTG0xaGNDZ29LU0E5UGlCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZFhScGJITXVlbVZ5YjNNb2JrTnZiWEJ2Ym1WdWRITXBMbTFoY0Nnb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIxZEdsc2N5NTBZWFZTWVc1a0tIUm9hWE11Y21GdVpHOXRLU0FxSURJd0lDc2dMVEV3T3lBdkx5QlNZVzVrYjIwZ1puSnZiU0F0TVRBZ2RHOGdNVEJjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnTHk4Z1IyVjBJR2R5WVhCb0lHUmhkR0VnYVc0Z2IzSmtaWEpsWkNCM1lYa3VMaTVjYmlBZ0lDQmpiMjV6ZENCM1pXbG5hSFJ6T2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNBZ0lHTnZibk4wSUdobFlXUTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnWTI5dWMzUWdkR0ZwYkRvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ0lDQmpiMjV6ZENCeWIzZERiMnhXWVd4MVpYTWdQU0JuY21Gd2FDNW5aWFJCYkd3b0tUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElISnZkME52YkZaaGJIVmxjeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWlc1MGNua2dQU0J5YjNkRGIyeFdZV3gxWlhOYmFWMDdYRzRnSUNBZ0lDQnBaaUFvWlc1MGNua3VkbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdkMlZwWjJoMGN5NXdkWE5vS0dWdWRISjVMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdkR0ZwYkM1d2RYTm9LR1Z1ZEhKNUxuSnZkeWs3WEc0Z0lDQWdJQ0FnSUdobFlXUXVjSFZ6YUNobGJuUnllUzVqYjJ3cE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQmxjRzlqYUhOUVpYSlRZVzF3YkdVZ1BTQjBhR2x6TG0xaGEyVkZjRzlqYUhOUVpYSlRZVzF3YkdVb2QyVnBaMmgwY3l3Z2JrVndiMk5vY3lrN1hHNWNiaUFnSUNCeVpYUjFjbTRnZXlCb1pXRmtMQ0IwWVdsc0xDQmxjRzlqYUhOUVpYSlRZVzF3YkdVZ2ZUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIYVhabGJpQmhJSE5sZENCdlppQjNaV2xuYUhSeklHRnVaQ0J1ZFcxaVpYSWdiMllnWlhCdlkyaHpJR2RsYm1WeVlYUmxJSFJvWlNCdWRXMWlaWElnYjJaY2JpQWdJQ29nWlhCdlkyaHpJSEJsY2lCellXMXdiR1VnWm05eUlHVmhZMmdnZDJWcFoyaDBMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0J0WVd0bFJYQnZZMmh6VUdWeVUyRnRjR3hsS0hkbGFXZG9kSE02SUc1MWJXSmxjbHRkTENCdVJYQnZZMmh6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQjFkR2xzY3k1bWFXeHNaV1FvZDJWcFoyaDBjeTVzWlc1bmRHZ3NJQzB4TGpBcE8xeHVJQ0FnSUdOdmJuTjBJRzFoZUNBOUlIVjBhV3h6TG0xaGVDaDNaV2xuYUhSektUdGNiaUFnSUNCamIyNXpkQ0J1VTJGdGNHeGxjeUE5SUhkbGFXZG9kSE11YldGd0tIY2dQVDRnS0hjZ0x5QnRZWGdwSUNvZ2JrVndiMk5vY3lrN1hHNGdJQ0FnYmxOaGJYQnNaWE11Wm05eVJXRmphQ2dvYml3Z2FTa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tHNGdQaUF3S1NCeVpYTjFiSFJiYVYwZ1BTQnVSWEJ2WTJoeklDOGdibE5oYlhCc1pYTmJhVjA3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJjM05wWjI1eklHOXdkR2x0YVhwaGRHbHZiaUJ6ZEdGMFpTQndZWEpoYldWMFpYSnpJR1p5YjIwZ1lTQndZWEowYVdGc0lHOXdkR2x0YVhwaGRHbHZiaUJ6ZEdGMFpTNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZWE56YVdkdVQzQjBhVzFwZW1GMGFXOXVVM1JoZEdWUVlYSmhiV1YwWlhKektITjBZWFJsT2lCUVlYSjBhV0ZzUEU5d2RHbHRhWHBoZEdsdmJsTjBZWFJsUGlrZ2UxeHVJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9kR2hwY3k1dmNIUnBiV2w2WVhScGIyNVRkR0YwWlN3Z2MzUmhkR1VwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGTmxkSE1nWVNCbVpYY2diM0IwYVcxcGVtRjBhVzl1SUhOMFlYUmxJSEJoY21GdFpYUmxjbk1nZEdoaGRDQmhjbVVnYm1WalpYTnpZWEo1SUdKbFptOXlaU0JsYm5SbGNtbHVaMXh1SUNBZ0tpQjBhR1VnYjNCMGFXMXBlbUYwYVc5dUlITjBaWEFnYkc5dmNDNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdjSEpsY0dGeVpVWnZjazl3ZEdsdGFYcGhkR2x2Ymt4dmIzQW9LU0I3WEc0Z0lDQWdMeThnU0hsd1pYSndZWEpoYldWMFpYSnpYRzRnSUNBZ1kyOXVjM1FnZXlCeVpYQjFiSE5wYjI1VGRISmxibWQwYUN3Z2JHVmhjbTVwYm1kU1lYUmxMQ0J1WldkaGRHbDJaVk5oYlhCc1pWSmhkR1VnZlNBOUlIUm9hWE03WEc1Y2JpQWdJQ0JqYjI1emRDQjdYRzRnSUNBZ0lDQmxjRzlqYUhOUVpYSlRZVzF3YkdVc1hHNGdJQ0FnSUNCb1pXRmtSVzFpWldSa2FXNW5MRnh1SUNBZ0lDQWdkR0ZwYkVWdFltVmtaR2x1Wnl4Y2JpQWdJQ0I5SUQwZ2RHaHBjeTV2Y0hScGJXbDZZWFJwYjI1VGRHRjBaVHRjYmx4dUlDQWdJR052Ym5OMElHUnBiU0E5SUdobFlXUkZiV0psWkdScGJtZGJNRjB1YkdWdVozUm9PMXh1SUNBZ0lHTnZibk4wSUcxdmRtVlBkR2hsY2lBOUlHaGxZV1JGYldKbFpHUnBibWN1YkdWdVozUm9JRDA5UFNCMFlXbHNSVzFpWldSa2FXNW5MbXhsYm1kMGFEdGNibHh1SUNBZ0lHTnZibk4wSUdWd2IyTm9jMUJsY2s1bFoyRjBhWFpsVTJGdGNHeGxJRDBnWlhCdlkyaHpVR1Z5VTJGdGNHeGxMbTFoY0NoY2JpQWdJQ0FnSUdVZ1BUNGdaU0F2SUc1bFoyRjBhWFpsVTJGdGNHeGxVbUYwWlZ4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pYQnZZMmhQWms1bGVIUk9aV2RoZEdsMlpWTmhiWEJzWlNBOUlGc3VMaTVsY0c5amFITlFaWEpPWldkaGRHbDJaVk5oYlhCc1pWMDdYRzRnSUNBZ1kyOXVjM1FnWlhCdlkyaFBaazVsZUhSVFlXMXdiR1VnUFNCYkxpNHVaWEJ2WTJoelVHVnlVMkZ0Y0d4bFhUdGNibHh1SUNBZ0lIUm9hWE11WVhOemFXZHVUM0IwYVcxcGVtRjBhVzl1VTNSaGRHVlFZWEpoYldWMFpYSnpLSHRjYmlBZ0lDQWdJR1Z3YjJOb1QyWk9aWGgwVTJGdGNHeGxMRnh1SUNBZ0lDQWdaWEJ2WTJoUFprNWxlSFJPWldkaGRHbDJaVk5oYlhCc1pTeGNiaUFnSUNBZ0lHVndiMk5vYzFCbGNrNWxaMkYwYVhabFUyRnRjR3hsTEZ4dUlDQWdJQ0FnYlc5MlpVOTBhR1Z5TEZ4dUlDQWdJQ0FnYVc1cGRHbGhiRUZzY0doaE9pQnNaV0Z5Ym1sdVoxSmhkR1VzWEc0Z0lDQWdJQ0JoYkhCb1lUb2diR1ZoY201cGJtZFNZWFJsTEZ4dUlDQWdJQ0FnWjJGdGJXRTZJSEpsY0hWc2MybHZibE4wY21WdVozUm9MRnh1SUNBZ0lDQWdaR2x0TEZ4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFbHVhWFJwWVd4cGVtVnpJRzl3ZEdsdGFYcGhkR2x2YmlCemRHRjBaU0JtYjNJZ2MzUmxjSGRwYzJVZ2IzQjBhVzFwZW1GMGFXOXVMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JwYm1sMGFXRnNhWHBsVDNCMGFXMXBlbUYwYVc5dUtDa2dlMXh1SUNBZ0lDOHZJRUZzWjI5eWFYUm9iU0J6ZEdGMFpWeHVJQ0FnSUdOdmJuTjBJR2hsWVdSRmJXSmxaR1JwYm1jZ1BTQjBhR2x6TG1WdFltVmtaR2x1Wnp0Y2JpQWdJQ0JqYjI1emRDQjBZV2xzUlcxaVpXUmthVzVuSUQwZ2RHaHBjeTVsYldKbFpHUnBibWM3WEc1Y2JpQWdJQ0F2THlCSmJtbDBhV0ZzYVhwbFpDQnBiaUJwYm1sMGFXRnNhWHBsVTJsdGNHeHBZMmxoYkZObGRFVnRZbVZrWkdsdVp5Z3BYRzRnSUNBZ1kyOXVjM1FnZXlCb1pXRmtMQ0IwWVdsc0xDQmxjRzlqYUhOUVpYSlRZVzF3YkdVZ2ZTQTlJSFJvYVhNdWIzQjBhVzFwZW1GMGFXOXVVM1JoZEdVN1hHNWNiaUFnSUNCamIyNXpkQ0J1UlhCdlkyaHpJRDBnZEdocGN5NW5aWFJPUlhCdlkyaHpLQ2s3WEc0Z0lDQWdZMjl1YzNRZ2JsWmxjblJwWTJWeklEMGdkR2hwY3k1bmNtRndhQzV1UTI5c2N6dGNibHh1SUNBZ0lHTnZibk4wSUhzZ1lTd2dZaUI5SUQwZ1ptbHVaRUZDVUdGeVlXMXpLSFJvYVhNdWMzQnlaV0ZrTENCMGFHbHpMbTFwYmtScGMzUXBPMXh1WEc0Z0lDQWdkR2hwY3k1aGMzTnBaMjVQY0hScGJXbDZZWFJwYjI1VGRHRjBaVkJoY21GdFpYUmxjbk1vZTF4dUlDQWdJQ0FnYUdWaFpFVnRZbVZrWkdsdVp5eGNiaUFnSUNBZ0lIUmhhV3hGYldKbFpHUnBibWNzWEc0Z0lDQWdJQ0JvWldGa0xGeHVJQ0FnSUNBZ2RHRnBiQ3hjYmlBZ0lDQWdJR1Z3YjJOb2MxQmxjbE5oYlhCc1pTeGNiaUFnSUNBZ0lHRXNYRzRnSUNBZ0lDQmlMRnh1SUNBZ0lDQWdia1Z3YjJOb2N5eGNiaUFnSUNBZ0lHNVdaWEowYVdObGN5eGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJKYlhCeWIzWmxJR0Z1SUdWdFltVmtaR2x1WnlCMWMybHVaeUJ6ZEc5amFHRnpkR2xqSUdkeVlXUnBaVzUwSUdSbGMyTmxiblFnZEc4Z2JXbHVhVzFwZW1VZ2RHaGxYRzRnSUNBcUlHWjFlbnA1SUhObGRDQmpjbTl6Y3lCbGJuUnliM0I1SUdKbGRIZGxaVzRnZEdobElERXRjMnRsYkdWMGIyNXpJRzltSUhSb1pTQm9hV2RvSUdScGJXVnVjMmx2Ym1Gc1hHNGdJQ0FxSUdGdVpDQnNiM2NnWkdsdFpXNXphVzl1WVd3Z1puVjZlbmtnYzJsdGNHeHBZMmxoYkNCelpYUnpMaUJKYmlCd2NtRmpkR2xqWlNCMGFHbHpJR2x6SUdSdmJtVWdZbmxjYmlBZ0lDb2djMkZ0Y0d4cGJtY2daV1JuWlhNZ1ltRnpaV1FnYjI0Z2RHaGxhWElnYldWdFltVnljMmhwY0NCemRISmxibWQwYUNBb2QybDBhQ0IwYUdVZ0tERXRjQ2tnZEdWeWJYTmNiaUFnSUNvZ1kyOXRhVzVuSUdaeWIyMGdibVZuWVhScGRtVWdjMkZ0Y0d4cGJtY2djMmx0YVd4aGNpQjBieUIzYjNKa01uWmxZeWt1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUc5d2RHbHRhWHBsVEdGNWIzVjBVM1JsY0NodU9pQnVkVzFpWlhJcElIdGNiaUFnSUNCamIyNXpkQ0I3SUc5d2RHbHRhWHBoZEdsdmJsTjBZWFJsSUgwZ1BTQjBhR2x6TzF4dUlDQWdJR052Ym5OMElIdGNiaUFnSUNBZ0lHaGxZV1FzWEc0Z0lDQWdJQ0IwWVdsc0xGeHVJQ0FnSUNBZ2FHVmhaRVZ0WW1Wa1pHbHVaeXhjYmlBZ0lDQWdJSFJoYVd4RmJXSmxaR1JwYm1jc1hHNGdJQ0FnSUNCbGNHOWphSE5RWlhKVFlXMXdiR1VzWEc0Z0lDQWdJQ0JsY0c5amFFOW1UbVY0ZEZOaGJYQnNaU3hjYmlBZ0lDQWdJR1Z3YjJOb1QyWk9aWGgwVG1WbllYUnBkbVZUWVcxd2JHVXNYRzRnSUNBZ0lDQmxjRzlqYUhOUVpYSk9aV2RoZEdsMlpWTmhiWEJzWlN4Y2JpQWdJQ0FnSUcxdmRtVlBkR2hsY2l4Y2JpQWdJQ0FnSUdsdWFYUnBZV3hCYkhCb1lTeGNiaUFnSUNBZ0lHRnNjR2hoTEZ4dUlDQWdJQ0FnWjJGdGJXRXNYRzRnSUNBZ0lDQmhMRnh1SUNBZ0lDQWdZaXhjYmlBZ0lDQWdJR1JwYlN4Y2JpQWdJQ0FnSUc1RmNHOWphSE1zWEc0Z0lDQWdJQ0J1Vm1WeWRHbGpaWE1zWEc0Z0lDQWdmU0E5SUc5d2RHbHRhWHBoZEdsdmJsTjBZWFJsTzF4dVhHNGdJQ0FnWTI5dWMzUWdZMnhwY0ZaaGJIVmxJRDBnTkM0d08xeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmxjRzlqYUhOUVpYSlRZVzF3YkdVdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJR2xtSUNobGNHOWphRTltVG1WNGRGTmhiWEJzWlZ0cFhTQStJRzRwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHTnZibk4wSUdvZ1BTQm9aV0ZrVzJsZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYXlBOUlIUmhhV3hiYVYwN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdOMWNuSmxiblFnUFNCb1pXRmtSVzFpWldSa2FXNW5XMnBkTzF4dUlDQWdJQ0FnWTI5dWMzUWdiM1JvWlhJZ1BTQjBZV2xzUlcxaVpXUmthVzVuVzJ0ZE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCa2FYTjBVM0YxWVhKbFpDQTlJSEpFYVhOMEtHTjFjbkpsYm5Rc0lHOTBhR1Z5S1R0Y2JseHVJQ0FnSUNBZ2JHVjBJR2R5WVdSRGIyVm1aaUE5SURBN1hHNGdJQ0FnSUNCcFppQW9aR2x6ZEZOeGRXRnlaV1FnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJR2R5WVdSRGIyVm1aaUE5SUMweUxqQWdLaUJoSUNvZ1lpQXFJRTFoZEdndWNHOTNLR1JwYzNSVGNYVmhjbVZrTENCaUlDMGdNUzR3S1R0Y2JpQWdJQ0FnSUNBZ1ozSmhaRU52WldabUlDODlJR0VnS2lCTllYUm9MbkJ2ZHloa2FYTjBVM0YxWVhKbFpDd2dZaWtnS3lBeExqQTdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR1FnUFNBd095QmtJRHdnWkdsdE95QmtLeXNwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWjNKaFpFUWdQU0JqYkdsd0tHZHlZV1JEYjJWbVppQXFJQ2hqZFhKeVpXNTBXMlJkSUMwZ2IzUm9aWEpiWkYwcExDQmpiR2x3Vm1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0JqZFhKeVpXNTBXMlJkSUNzOUlHZHlZV1JFSUNvZ1lXeHdhR0U3WEc0Z0lDQWdJQ0FnSUdsbUlDaHRiM1psVDNSb1pYSXBJSHRjYmlBZ0lDQWdJQ0FnSUNCdmRHaGxjbHRrWFNBclBTQXRaM0poWkVRZ0tpQmhiSEJvWVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmxjRzlqYUU5bVRtVjRkRk5oYlhCc1pWdHBYU0FyUFNCbGNHOWphSE5RWlhKVFlXMXdiR1ZiYVYwN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUc1T1pXZFRZVzF3YkdWeklEMGdUV0YwYUM1bWJHOXZjaWhjYmlBZ0lDQWdJQ0FnS0c0Z0xTQmxjRzlqYUU5bVRtVjRkRTVsWjJGMGFYWmxVMkZ0Y0d4bFcybGRLU0F2SUdWd2IyTm9jMUJsY2s1bFoyRjBhWFpsVTJGdGNHeGxXMmxkWEc0Z0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNCbWIzSWdLR3hsZENCd0lEMGdNRHNnY0NBOElHNU9aV2RUWVcxd2JHVnpPeUJ3S3lzcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2F5QTlJSFYwYVd4ekxuUmhkVkpoYm1SSmJuUW9ibFpsY25ScFkyVnpMQ0IwYUdsekxuSmhibVJ2YlNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5MGFHVnlJRDBnZEdGcGJFVnRZbVZrWkdsdVoxdHJYVHRjYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrYVhOMFUzRjFZWEpsWkNBOUlISkVhWE4wS0dOMWNuSmxiblFzSUc5MGFHVnlLVHRjYmx4dUlDQWdJQ0FnSUNCc1pYUWdaM0poWkVOdlpXWm1JRDBnTUM0d08xeHVJQ0FnSUNBZ0lDQnBaaUFvWkdsemRGTnhkV0Z5WldRZ1BpQXdMakFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQm5jbUZrUTI5bFptWWdQU0F5TGpBZ0tpQm5ZVzF0WVNBcUlHSTdYRzRnSUNBZ0lDQWdJQ0FnWjNKaFpFTnZaV1ptSUM4OVhHNGdJQ0FnSUNBZ0lDQWdJQ0FvTUM0d01ERWdLeUJrYVhOMFUzRjFZWEpsWkNrZ0tpQW9ZU0FxSUUxaGRHZ3VjRzkzS0dScGMzUlRjWFZoY21Wa0xDQmlLU0FySURFcE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR29nUFQwOUlHc3BJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR1FnUFNBd095QmtJRHdnWkdsdE95QmtLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnNaWFFnWjNKaFpFUWdQU0EwTGpBN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dkeVlXUkRiMlZtWmlBK0lEQXVNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaM0poWkVRZ1BTQmpiR2x3S0dkeVlXUkRiMlZtWmlBcUlDaGpkWEp5Wlc1MFcyUmRJQzBnYjNSb1pYSmJaRjBwTENCamJHbHdWbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCamRYSnlaVzUwVzJSZElDczlJR2R5WVdSRUlDb2dZV3h3YUdFN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHVndiMk5vVDJaT1pYaDBUbVZuWVhScGRtVlRZVzF3YkdWYmFWMGdLejBnYms1bFoxTmhiWEJzWlhNZ0tpQmxjRzlqYUhOUVpYSk9aV2RoZEdsMlpWTmhiWEJzWlZ0cFhUdGNiaUFnSUNCOVhHNGdJQ0FnYjNCMGFXMXBlbUYwYVc5dVUzUmhkR1V1WVd4d2FHRWdQU0JwYm1sMGFXRnNRV3h3YUdFZ0tpQW9NUzR3SUMwZ2JpQXZJRzVGY0c5amFITXBPMXh1WEc0Z0lDQWdiM0IwYVcxcGVtRjBhVzl1VTNSaGRHVXVZM1Z5Y21WdWRFVndiMk5vSUNzOUlERTdYRzRnSUNBZ2NtVjBkWEp1SUdobFlXUkZiV0psWkdScGJtYzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nU1cxd2NtOTJaU0JoYmlCbGJXSmxaR1JwYm1jZ2RYTnBibWNnYzNSdlkyaGhjM1JwWXlCbmNtRmthV1Z1ZENCa1pYTmpaVzUwSUhSdklHMXBibWx0YVhwbElIUm9aVnh1SUNBZ0tpQm1kWHA2ZVNCelpYUWdZM0p2YzNNZ1pXNTBjbTl3ZVNCaVpYUjNaV1Z1SUhSb1pTQXhMWE5yWld4bGRHOXVjeUJ2WmlCMGFHVWdhR2xuYUNCa2FXMWxibk5wYjI1aGJGeHVJQ0FnS2lCaGJtUWdiRzkzSUdScGJXVnVjMmx2Ym1Gc0lHWjFlbnA1SUhOcGJYQnNhV05wWVd3Z2MyVjBjeTRnU1c0Z2NISmhZM1JwWTJVZ2RHaHBjeUJwY3lCa2IyNWxJR0o1WEc0Z0lDQXFJSE5oYlhCc2FXNW5JR1ZrWjJWeklHSmhjMlZrSUc5dUlIUm9aV2x5SUcxbGJXSmxjbk5vYVhBZ2MzUnlaVzVuZEdnZ0tIZHBkR2dnZEdobElDZ3hMWEFwSUhSbGNtMXpYRzRnSUNBcUlHTnZiV2x1WnlCbWNtOXRJRzVsWjJGMGFYWmxJSE5oYlhCc2FXNW5JSE5wYldsc1lYSWdkRzhnZDI5eVpESjJaV01wTGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCdmNIUnBiV2w2WlV4aGVXOTFkRUZ6ZVc1aktGeHVJQ0FnSUdWd2IyTm9RMkZzYkdKaFkyczZJQ2hsY0c5amFFNTFiV0psY2pvZ2JuVnRZbVZ5S1NBOVBpQjJiMmxrSUh3Z1ltOXZiR1ZoYmlBOUlDZ3BJRDArSUhSeWRXVmNiaUFnS1RvZ1VISnZiV2x6WlR4aWIyOXNaV0Z1UGlCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0NoeVpYTnZiSFpsTENCeVpXcGxZM1FwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUhOMFpYQWdQU0JoYzNsdVl5QW9LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCdVJYQnZZMmh6TENCamRYSnlaVzUwUlhCdlkyZ2dmU0E5SUhSb2FYTXViM0IwYVcxcGVtRjBhVzl1VTNSaGRHVTdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NWxiV0psWkdScGJtY2dQU0IwYUdsekxtOXdkR2x0YVhwbFRHRjViM1YwVTNSbGNDaGpkWEp5Wlc1MFJYQnZZMmdwTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdWd2IyTm9RMjl0Y0d4bGRHVmtJRDBnZEdocGN5NXZjSFJwYldsNllYUnBiMjVUZEdGMFpTNWpkWEp5Wlc1MFJYQnZZMmc3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJodmRXeGtVM1J2Y0NBOUlHVndiMk5vUTJGc2JHSmhZMnNvWlhCdlkyaERiMjF3YkdWMFpXUXBJRDA5UFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JwYzBacGJtbHphR1ZrSUQwZ1pYQnZZMmhEYjIxd2JHVjBaV1FnUFQwOUlHNUZjRzlqYUhNN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0NGemFHOTFiR1JUZEc5d0lDWW1JQ0ZwYzBacGJtbHphR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0NncElEMCtJSE4wWlhBb0tTd2dNQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE52YkhabEtHbHpSbWx1YVhOb1pXUXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pYSnlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVnFaV04wS0dWeWNpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0NncElEMCtJSE4wWlhBb0tTd2dNQ2s3WEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1NXMXdjbTkyWlNCaGJpQmxiV0psWkdScGJtY2dkWE5wYm1jZ2MzUnZZMmhoYzNScFl5Qm5jbUZrYVdWdWRDQmtaWE5qWlc1MElIUnZJRzFwYm1sdGFYcGxJSFJvWlZ4dUlDQWdLaUJtZFhwNmVTQnpaWFFnWTNKdmMzTWdaVzUwY205d2VTQmlaWFIzWldWdUlIUm9aU0F4TFhOclpXeGxkRzl1Y3lCdlppQjBhR1VnYUdsbmFDQmthVzFsYm5OcGIyNWhiRnh1SUNBZ0tpQmhibVFnYkc5M0lHUnBiV1Z1YzJsdmJtRnNJR1oxZW5wNUlITnBiWEJzYVdOcFlXd2djMlYwY3k0Z1NXNGdjSEpoWTNScFkyVWdkR2hwY3lCcGN5QmtiMjVsSUdKNVhHNGdJQ0FxSUhOaGJYQnNhVzVuSUdWa1oyVnpJR0poYzJWa0lHOXVJSFJvWldseUlHMWxiV0psY25Ob2FYQWdjM1J5Wlc1bmRHZ2dLSGRwZEdnZ2RHaGxJQ2d4TFhBcElIUmxjbTF6WEc0Z0lDQXFJR052YldsdVp5Qm1jbTl0SUc1bFoyRjBhWFpsSUhOaGJYQnNhVzVuSUhOcGJXbHNZWElnZEc4Z2QyOXlaREoyWldNcExseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQnZjSFJwYldsNlpVeGhlVzkxZENoY2JpQWdJQ0JsY0c5amFFTmhiR3hpWVdOck9pQW9aWEJ2WTJoT2RXMWlaWEk2SUc1MWJXSmxjaWtnUFQ0Z2RtOXBaQ0I4SUdKdmIyeGxZVzRnUFNBb0tTQTlQaUIwY25WbFhHNGdJQ2s2SUZabFkzUnZjbk1nZTF4dUlDQWdJR3hsZENCcGMwWnBibWx6YUdWa0lEMGdabUZzYzJVN1hHNGdJQ0FnYkdWMElHVnRZbVZrWkdsdVp6b2dWbVZqZEc5eWN5QTlJRnRkTzF4dUlDQWdJSGRvYVd4bElDZ2hhWE5HYVc1cGMyaGxaQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdleUJ1UlhCdlkyaHpMQ0JqZFhKeVpXNTBSWEJ2WTJnZ2ZTQTlJSFJvYVhNdWIzQjBhVzFwZW1GMGFXOXVVM1JoZEdVN1hHNGdJQ0FnSUNCbGJXSmxaR1JwYm1jZ1BTQjBhR2x6TG05d2RHbHRhWHBsVEdGNWIzVjBVM1JsY0NoamRYSnlaVzUwUlhCdlkyZ3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pYQnZZMmhEYjIxd2JHVjBaV1FnUFNCMGFHbHpMbTl3ZEdsdGFYcGhkR2x2YmxOMFlYUmxMbU4xY25KbGJuUkZjRzlqYUR0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5vYjNWc1pGTjBiM0FnUFNCbGNHOWphRU5oYkd4aVlXTnJLR1Z3YjJOb1EyOXRjR3hsZEdWa0tTQTlQVDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQnBjMFpwYm1semFHVmtJRDBnWlhCdlkyaERiMjF3YkdWMFpXUWdQVDA5SUc1RmNHOWphSE1nZkh3Z2MyaHZkV3hrVTNSdmNEdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR1Z0WW1Wa1pHbHVaenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUnpJSFJvWlNCdWRXMWlaWElnYjJZZ1pYQnZZMmh6SUdadmNpQnZjSFJwYldsNmFXNW5JSFJvWlNCd2NtOXFaV04wYVc5dUxseHVJQ0FnS2lCT1QxUkZPaUJVYUdseklHaGxkWEpwYzNScFl5QmthV1ptWlhKeklHWnliMjBnZEdobElIQjVkR2h2YmlCMlpYSnphVzl1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMFRrVndiMk5vY3lncElIdGNiaUFnSUNCamIyNXpkQ0JuY21Gd2FDQTlJSFJvYVhNdVozSmhjR2c3WEc1Y2JpQWdJQ0JwWmlBb2RHaHBjeTV1UlhCdlkyaHpJRDRnTUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVia1Z3YjJOb2N6dGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9JV2R5WVhCb0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z01qQXdPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUd4bGJtZDBhQ0E5SUdkeVlYQm9MbTVTYjNkek8xeHVJQ0FnSUdsbUlDaHNaVzVuZEdnZ1BEMGdNalV3TUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SURVd01EdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHeGxibWQwYUNBOFBTQTFNREF3S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnTkRBd08xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2JHVnVaM1JvSUR3OUlEYzFNREFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUF6TURBN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQXlNREE3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJsZFdOc2FXUmxZVzRvZURvZ1ZtVmpkRzl5TENCNU9pQldaV04wYjNJcElIdGNiaUFnYkdWMElISmxjM1ZzZENBOUlEQTdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2VDNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJSEpsYzNWc2RDQXJQU0FvZUZ0cFhTQXRJSGxiYVYwcElDb3FJREk3WEc0Z0lIMWNiaUFnY21WMGRYSnVJRTFoZEdndWMzRnlkQ2h5WlhOMWJIUXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JuVnRaWEpwWXloNE9pQnVkVzFpWlhJc0lIazZJRzUxYldKbGNpa2dlMXh1SUNCamIyNXpkQ0J5WlhOMWJIUWdQU0JOWVhSb0xtRmljeWg0SUMwZ2VTazdYRzRnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamIzTnBibVVvZURvZ1ZtVmpkRzl5TENCNU9pQldaV04wYjNJcElIdGNiaUFnYkdWMElISmxjM1ZzZENBOUlEQXVNRHRjYmlBZ2JHVjBJRzV2Y20xWUlEMGdNQzR3TzF4dUlDQnNaWFFnYm05eWJWa2dQU0F3TGpBN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCNExteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdjbVZ6ZFd4MElDczlJSGhiYVYwZ0tpQjVXMmxkTzF4dUlDQWdJRzV2Y20xWUlDczlJSGhiYVYwZ0tpb2dNanRjYmlBZ0lDQnViM0p0V1NBclBTQjVXMmxkSUNvcUlESTdYRzRnSUgxY2JseHVJQ0JwWmlBb2JtOXliVmdnUFQwOUlEQWdKaVlnYm05eWJWa2dQVDA5SURBcElIdGNiaUFnSUNCeVpYUjFjbTRnTUR0Y2JpQWdmU0JsYkhObElHbG1JQ2h1YjNKdFdDQTlQVDBnTUNCOGZDQnViM0p0V1NBOVBUMGdNQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQXhMakE3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnY21WMGRYSnVJREV1TUNBdElISmxjM1ZzZENBdklFMWhkR2d1YzNGeWRDaHViM0p0V0NBcUlHNXZjbTFaS1R0Y2JpQWdmVnh1ZlZ4dVhHNHZLaXBjYmlBcUlFRnVJR2x1ZEdWeVptRmpaU0J5WlhCeVpYTmxiblJwYm1jZ2RHaGxJRzl3ZEdsdGFYcGhkR2x2YmlCemRHRjBaU0IwY21GamEyVmtJR0psZEhkbFpXNGdjM1JsY0hNZ2IyWmNiaUFxSUhSb1pTQlRSMFFnYjNCMGFXMXBlbUYwYVc5dVhHNGdLaTljYm1Oc1lYTnpJRTl3ZEdsdGFYcGhkR2x2YmxOMFlYUmxJSHRjYmlBZ1kzVnljbVZ1ZEVWd2IyTm9JRDBnTUR0Y2JseHVJQ0F2THlCRVlYUmhJSFJ5WVdOclpXUWdaSFZ5YVc1bklHOXdkR2x0YVhwaGRHbHZiaUJ6ZEdWd2N5NWNiaUFnYUdWaFpFVnRZbVZrWkdsdVp6b2diblZ0WW1WeVcxMWJYU0E5SUZ0ZE8xeHVJQ0IwWVdsc1JXMWlaV1JrYVc1bk9pQnVkVzFpWlhKYlhWdGRJRDBnVzEwN1hHNGdJR2hsWVdRNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lIUmhhV3c2SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUdWd2IyTm9jMUJsY2xOaGJYQnNaVG9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnWlhCdlkyaFBaazVsZUhSVFlXMXdiR1U2SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUdWd2IyTm9UMlpPWlhoMFRtVm5ZWFJwZG1WVFlXMXdiR1U2SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUdWd2IyTm9jMUJsY2s1bFoyRjBhWFpsVTJGdGNHeGxPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0J0YjNabFQzUm9aWElnUFNCMGNuVmxPMXh1SUNCcGJtbDBhV0ZzUVd4d2FHRWdQU0F4TGpBN1hHNGdJR0ZzY0doaElEMGdNUzR3TzF4dUlDQm5ZVzF0WVNBOUlERXVNRHRjYmlBZ1lTQTlJREV1TlRjMk9UUXpORFl3TXpFeE16QTNOenRjYmlBZ1lpQTlJREF1T0RrMU1EWXdPRGMzT1RFd09UY3pNenRjYmlBZ1pHbHRJRDBnTWp0Y2JpQWdia1Z3YjJOb2N5QTlJRFV3TUR0Y2JpQWdibFpsY25ScFkyVnpJRDBnTUR0Y2JuMWNibHh1THlvcVhHNGdLaUJUZEdGdVpHRnlaQ0JqYkdGdGNHbHVaeUJ2WmlCaElIWmhiSFZsSUdsdWRHOGdZU0JtYVhobFpDQnlZVzVuWlZ4dUlDb3ZYRzVtZFc1amRHbHZiaUJqYkdsd0tIZzZJRzUxYldKbGNpd2dZMnhwY0ZaaGJIVmxPaUJ1ZFcxaVpYSXBJSHRjYmlBZ2FXWWdLSGdnUGlCamJHbHdWbUZzZFdVcElISmxkSFZ5YmlCamJHbHdWbUZzZFdVN1hHNGdJR1ZzYzJVZ2FXWWdLSGdnUENBdFkyeHBjRlpoYkhWbEtTQnlaWFIxY200Z0xXTnNhWEJXWVd4MVpUdGNiaUFnWld4elpTQnlaWFIxY200Z2VEdGNibjFjYmx4dUx5b3FYRzRnS2lCU1pXUjFZMlZrSUVWMVkyeHBaR1ZoYmlCa2FYTjBZVzVqWlM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnY2tScGMzUW9lRG9nYm5WdFltVnlXMTBzSUhrNklHNTFiV0psY2x0ZEtTQjdYRzRnSUd4bGRDQnlaWE4xYkhRZ1BTQXdMakE3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dlQzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUhKbGMzVnNkQ0FyUFNCTllYUm9MbkJ2ZHloNFcybGRJQzBnZVZ0cFhTd2dNaWs3WEc0Z0lIMWNiaUFnY21WMGRYSnVJSEpsYzNWc2REdGNibjFjYmx4dUx5b3FYRzRnS2lCR2FYUWdZU3dnWWlCd1lYSmhiWE1nWm05eUlIUm9aU0JrYVdabVpYSmxiblJwWVdKc1pTQmpkWEoyWlNCMWMyVmtJR2x1SUd4dmQyVnlYRzRnS2lCa2FXMWxibk5wYjI1aGJDQm1kWHA2ZVNCemFXMXdiR2xqYVdGc0lHTnZiWEJzWlhnZ1kyOXVjM1J5ZFdOMGFXOXVMaUJYWlNCM1lXNTBJSFJvWlZ4dUlDb2djMjF2YjNSb0lHTjFjblpsSUNobWNtOXRJR0VnY0hKbExXUmxabWx1WldRZ1ptRnRhV3g1SUhkcGRHZ2djMmx0Y0d4bElHZHlZV1JwWlc1MEtTQjBhR0YwWEc0Z0tpQmlaWE4wSUcxaGRHTm9aWE1nWVc0Z2IyWm1jMlYwSUdWNGNHOXVaVzUwYVdGc0lHUmxZMkY1TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdabWx1WkVGQ1VHRnlZVzF6S0hOd2NtVmhaRG9nYm5WdFltVnlMQ0J0YVc1RWFYTjBPaUJ1ZFcxaVpYSXBJSHRjYmlBZ1kyOXVjM1FnWTNWeWRtVWdQU0FvVzJFc0lHSmRPaUJ1ZFcxaVpYSmJYU2tnUFQ0Z0tIZzZJRzUxYldKbGNpa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQXhMakFnTHlBb01TNHdJQ3NnWVNBcUlIZ2dLaW9nS0RJZ0tpQmlLU2s3WEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnZUhZZ1BTQjFkR2xzYzF4dUlDQWdJQzVzYVc1bFlYSW9NQ3dnYzNCeVpXRmtJQ29nTXl3Z016QXdLVnh1SUNBZ0lDNXRZWEFvZG1Gc0lEMCtJQ2gyWVd3Z1BDQnRhVzVFYVhOMElEOGdNUzR3SURvZ2RtRnNLU2s3WEc1Y2JpQWdZMjl1YzNRZ2VYWWdQU0IxZEdsc2N5NTZaWEp2Y3loNGRpNXNaVzVuZEdncExtMWhjQ2dvZG1Gc0xDQnBibVJsZUNrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdkMFpTQTlJSGgyVzJsdVpHVjRYU0ErUFNCdGFXNUVhWE4wTzF4dUlDQWdJSEpsZEhWeWJpQm5kR1VnUHlCTllYUm9MbVY0Y0NndEtIaDJXMmx1WkdWNFhTQXRJRzFwYmtScGMzUXBJQzhnYzNCeVpXRmtLU0E2SUhaaGJEdGNiaUFnZlNrN1hHNWNiaUFnWTI5dWMzUWdhVzVwZEdsaGJGWmhiSFZsY3lBOUlGc3dMalVzSURBdU5WMDdYRzRnSUdOdmJuTjBJR1JoZEdFZ1BTQjdJSGc2SUhoMkxDQjVPaUI1ZGlCOU8xeHVYRzRnSUM4dklFUmxabUYxYkhRZ2IzQjBhVzl1Y3lCbWIzSWdkR2hsSUdGc1oyOXlhWFJvYlNBb1puSnZiU0JuYVhSb2RXSWdaWGhoYlhCc1pTbGNiaUFnWTI5dWMzUWdiM0IwYVc5dWN5QTlJSHRjYmlBZ0lDQmtZVzF3YVc1bk9pQXhMalVzWEc0Z0lDQWdhVzVwZEdsaGJGWmhiSFZsY3l4Y2JpQWdJQ0JuY21Ga2FXVnVkRVJwWm1abGNtVnVZMlU2SURFd1pTMHlMRnh1SUNBZ0lHMWhlRWwwWlhKaGRHbHZibk02SURFd01DeGNiaUFnSUNCbGNuSnZjbFJ2YkdWeVlXNWpaVG9nTVRCbExUTXNYRzRnSUgwN1hHNWNiaUFnWTI5dWMzUWdleUJ3WVhKaGJXVjBaWEpXWVd4MVpYTWdmU0E5SUV4TktHUmhkR0VzSUdOMWNuWmxMQ0J2Y0hScGIyNXpLVHRjYmlBZ1kyOXVjM1FnVzJFc0lHSmRJRDBnY0dGeVlXMWxkR1Z5Vm1Gc2RXVnpJR0Z6SUc1MWJXSmxjbHRkTzF4dUlDQnlaWFIxY200Z2V5QmhMQ0JpSUgwN1hHNTlYRzVjYmk4cUtseHVJQ29nVlc1a1pYSWdkR2hsSUdGemMzVnRjSFJwYjI0Z2IyWWdZMkYwWldkdmNtbGpZV3dnWkdsemRHRnVZMlVnWm05eUlIUm9aU0JwYm5SbGNuTmxZM1JwYm1kY2JpQXFJSE5wYlhCc2FXTnBZV3dnYzJWMElIQmxjbVp2Y20wZ1lTQm1ZWE4wSUdsdWRHVnljMlZqZEdsdmJpNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdaaGMzUkpiblJsY25ObFkzUnBiMjRvWEc0Z0lHZHlZWEJvT2lCdFlYUnlhWGd1VTNCaGNuTmxUV0YwY21sNExGeHVJQ0IwWVhKblpYUTZJRzUxYldKbGNsdGRMRnh1SUNCMWJtdHViM2R1UkdsemRDQTlJREV1TUN4Y2JpQWdabUZ5UkdsemRDQTlJRFV1TUZ4dUtTQjdYRzRnSUhKbGRIVnliaUJuY21Gd2FDNXRZWEFvS0haaGJIVmxMQ0J5YjNjc0lHTnZiQ2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaDBZWEpuWlhSYmNtOTNYU0E5UFQwZ0xURWdmSHdnZEdGeVoyVjBXMk52YkYwZ1BUMDlJQzB4S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVWdLaUJOWVhSb0xtVjRjQ2d0ZFc1cmJtOTNia1JwYzNRcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2RHRnlaMlYwVzNKdmQxMGdJVDA5SUhSaGNtZGxkRnRqYjJ4ZEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1VnS2lCTllYUm9MbVY0Y0NndFptRnlSR2x6ZENrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlR0Y2JpQWdJQ0I5WEc0Z0lIMHBPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGSmxjMlYwSUhSb1pTQnNiMk5oYkNCamIyNXVaV04wYVhacGRIa2djbVZ4ZFdseVpXMWxiblFnTFMwZ1pXRmphQ0JrWVhSaElITmhiWEJzWlNCemFHOTFiR1JjYmlBcUlHaGhkbVVnWTI5dGNHeGxkR1VnWTI5dVptbGtaVzVqWlNCcGJpQmhkQ0JzWldGemRDQnZibVVnTVMxemFXMXdiR1Y0SUdsdUlIUm9aU0J6YVcxd2JHbGphV0ZzSUhObGRDNWNiaUFxSUZkbElHTmhiaUJsYm1admNtTmxJSFJvYVhNZ1lua2diRzlqWVd4c2VTQnlaWE5qWVd4cGJtY2dZMjl1Wm1sa1pXNWpaWE1zSUdGdVpDQjBhR1Z1SUhKbGJXVnlaMmx1WnlCMGFHVmNiaUFxSUdScFptWmxjbVZ1ZENCc2IyTmhiQ0J6YVcxd2JHbGphV0ZzSUhObGRITWdkRzluWlhSb1pYSXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeVpYTmxkRXh2WTJGc1EyOXVibVZqZEdsMmFYUjVLSE5wYlhCc2FXTnBZV3hUWlhRNklHMWhkSEpwZUM1VGNHRnljMlZOWVhSeWFYZ3BJSHRjYmlBZ2MybHRjR3hwWTJsaGJGTmxkQ0E5SUcxaGRISnBlQzV1YjNKdFlXeHBlbVVvYzJsdGNHeHBZMmxoYkZObGRDd2diV0YwY21sNExrNXZjbTFVZVhCbExtMWhlQ2s3WEc0Z0lHTnZibk4wSUhSeVlXNXpjRzl6WlNBOUlHMWhkSEpwZUM1MGNtRnVjM0J2YzJVb2MybHRjR3hwWTJsaGJGTmxkQ2s3WEc0Z0lHTnZibk4wSUhCeWIyUk5ZWFJ5YVhnZ1BTQnRZWFJ5YVhndWNHRnBjbmRwYzJWTmRXeDBhWEJzZVNoMGNtRnVjM0J2YzJVc0lITnBiWEJzYVdOcFlXeFRaWFFwTzF4dUlDQnphVzF3YkdsamFXRnNVMlYwSUQwZ2JXRjBjbWw0TG1Ga1pDaGNiaUFnSUNCemFXMXdiR2xqYVdGc1UyVjBMRnh1SUNBZ0lHMWhkSEpwZUM1emRXSjBjbUZqZENoMGNtRnVjM0J2YzJVc0lIQnliMlJOWVhSeWFYZ3BYRzRnSUNrN1hHNGdJSEpsZEhWeWJpQnRZWFJ5YVhndVpXeHBiV2x1WVhSbFdtVnliM01vYzJsdGNHeHBZMmxoYkZObGRDazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1IybDJaVzRnYVc1a2FXTmxjeUJoYm1RZ2QyVnBaMmgwY3lCaGJtUWdZVzRnYjNKcFoybHVZV3dnWlcxaVpXUmthVzVuYzF4dUlDb2dhVzVwZEdsaGJHbDZaU0IwYUdVZ2NHOXphWFJwYjI1eklHOW1JRzVsZHlCd2IybHVkSE1nY21Wc1lYUnBkbVVnZEc4Z2RHaGxYRzRnS2lCcGJtUnBZMlZ6SUdGdVpDQjNaV2xuYUhSeklDaHZaaUIwYUdWcGNpQnVaV2xuYUdKdmNuTWdhVzRnZEdobElITnZkWEpqWlNCa1lYUmhLUzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbHVhWFJVY21GdWMyWnZjbTBvWEc0Z0lHbHVaR2xqWlhNNklHNTFiV0psY2x0ZFcxMHNYRzRnSUhkbGFXZG9kSE02SUc1MWJXSmxjbHRkVzEwc1hHNGdJR1Z0WW1Wa1pHbHVaem9nVm1WamRHOXljMXh1S1NCN1hHNGdJR052Ym5OMElISmxjM1ZzZENBOUlIVjBhV3h6WEc0Z0lDQWdMbnBsY205ektHbHVaR2xqWlhNdWJHVnVaM1JvS1Z4dUlDQWdJQzV0WVhBb2VpQTlQaUIxZEdsc2N5NTZaWEp2Y3lobGJXSmxaR1JwYm1kYk1GMHViR1Z1WjNSb0tTazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnBibVJwWTJWekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhaUE5SURBN0lHb2dQQ0JwYm1ScFkyVnpXekJkTG14bGJtZDBhRHNnYWlzcktTQjdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQmtJRDBnTURzZ1pDQThJR1Z0WW1Wa1pHbHVaMXN3WFM1c1pXNW5kR2c3SUdRckt5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmhJRDBnYVc1a2FXTmxjMXRwWFZ0cVhUdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MFcybGRXMlJkSUNzOUlIZGxhV2RvZEhOYmFWMWJhbDBnS2lCbGJXSmxaR1JwYm1kYllWMWJaRjA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNTlYRzRpWFgwPSIsIi8qKlxuICogQGxpY2Vuc2VcbiAqXG4gKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4vKipcbiAqIFRoaXMgaXMgYSBKYXZhU2NyaXB0IHJlaW1wbGVtZW50YXRpb24gb2YgVU1BUCAob3JpZ2luYWwgbGljZW5zZSBiZWxvdyksIGZyb21cbiAqIHRoZSBweXRob24gaW1wbGVtZW50YXRpb24gZm91bmQgYXQgaHR0cHM6Ly9naXRodWIuY29tL2xtY2lubmVzL3VtYXAuXG4gKlxuICogQGF1dGhvciBhbmR5Y29lbmVuQGdvb2dsZS5jb20gKEFuZHkgQ29lbmVuKVxuICovXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBCU0QgMy1DbGF1c2UgTGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNywgTGVsYW5kIE1jSW5uZXNcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0XG4gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDpcbiAqXG4gKiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpc1xuICogICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cbiAqXG4gKiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSxcbiAqICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvblxuICogICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi5cbiAqXG4gKiAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHNcbiAqICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb21cbiAqICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cbiAqXG4gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTIFwiQVMgSVNcIlxuICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRVxuICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFXG4gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTFxuICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1JcbiAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSXG4gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLFxuICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0VcbiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKi9cbmltcG9ydCAqIGFzIGhlYXAgZnJvbSAnLi9oZWFwJztcbmltcG9ydCAqIGFzIG1hdHJpeCBmcm9tICcuL21hdHJpeCc7XG5pbXBvcnQgKiBhcyB0cmVlIGZyb20gJy4vdHJlZSc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJztcbi8qKlxuICogQ3JlYXRlIGEgdmVyc2lvbiBvZiBuZWFyZXN0IG5laWdoYm9yIGRlc2NlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlTk5EZXNjZW50KGRpc3RhbmNlRm4sIHJhbmRvbSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBuTkRlc2NlbnQoZGF0YSwgbGVhZkFycmF5LCBuTmVpZ2hib3JzLCBuSXRlcnMgPSAxMCwgbWF4Q2FuZGlkYXRlcyA9IDUwLCBkZWx0YSA9IDAuMDAxLCByaG8gPSAwLjUsIHJwVHJlZUluaXQgPSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IG5WZXJ0aWNlcyA9IGRhdGEubGVuZ3RoO1xuICAgICAgICBjb25zdCBjdXJyZW50R3JhcGggPSBoZWFwLm1ha2VIZWFwKGRhdGEubGVuZ3RoLCBuTmVpZ2hib3JzKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRpY2VzID0gaGVhcC5yZWplY3Rpb25TYW1wbGUobk5laWdoYm9ycywgZGF0YS5sZW5ndGgsIHJhbmRvbSk7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGluZGljZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGlzdGFuY2VGbihkYXRhW2ldLCBkYXRhW2luZGljZXNbal1dKTtcbiAgICAgICAgICAgICAgICBoZWFwLmhlYXBQdXNoKGN1cnJlbnRHcmFwaCwgaSwgZCwgaW5kaWNlc1tqXSwgMSk7XG4gICAgICAgICAgICAgICAgaGVhcC5oZWFwUHVzaChjdXJyZW50R3JhcGgsIGluZGljZXNbal0sIGQsIGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChycFRyZWVJbml0KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGxlYWZBcnJheS5sZW5ndGg7IG4rKykge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVhZkFycmF5W25dLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsZWFmQXJyYXlbbl1baV0gPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBsZWFmQXJyYXlbbl0ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZWFmQXJyYXlbbl1bal0gPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gZGlzdGFuY2VGbihkYXRhW2xlYWZBcnJheVtuXVtpXV0sIGRhdGFbbGVhZkFycmF5W25dW2pdXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFwLmhlYXBQdXNoKGN1cnJlbnRHcmFwaCwgbGVhZkFycmF5W25dW2ldLCBkLCBsZWFmQXJyYXlbbl1bal0sIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVhcC5oZWFwUHVzaChjdXJyZW50R3JhcGgsIGxlYWZBcnJheVtuXVtqXSwgZCwgbGVhZkFycmF5W25dW2ldLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IG5JdGVyczsgbisrKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVOZWlnaGJvcnMgPSBoZWFwLmJ1aWxkQ2FuZGlkYXRlcyhjdXJyZW50R3JhcGgsIG5WZXJ0aWNlcywgbk5laWdoYm9ycywgbWF4Q2FuZGlkYXRlcywgcmFuZG9tKTtcbiAgICAgICAgICAgIGxldCBjID0gMDtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblZlcnRpY2VzOyBpKyspIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1heENhbmRpZGF0ZXM7IGorKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcCA9IE1hdGguZmxvb3IoY2FuZGlkYXRlTmVpZ2hib3JzWzBdW2ldW2pdKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHAgPCAwIHx8IHV0aWxzLnRhdVJhbmQocmFuZG9tKSA8IHJobykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBtYXhDYW5kaWRhdGVzOyBrKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHEgPSBNYXRoLmZsb29yKGNhbmRpZGF0ZU5laWdoYm9yc1swXVtpXVtrXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaiA9IGNhbmRpZGF0ZU5laWdoYm9yc1syXVtpXVtqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNrID0gY2FuZGlkYXRlTmVpZ2hib3JzWzJdW2ldW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHEgPCAwIHx8ICghY2ogJiYgIWNrKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IGRpc3RhbmNlRm4oZGF0YVtwXSwgZGF0YVtxXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjICs9IGhlYXAuaGVhcFB1c2goY3VycmVudEdyYXBoLCBwLCBkLCBxLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGMgKz0gaGVhcC5oZWFwUHVzaChjdXJyZW50R3JhcGgsIHEsIGQsIHAsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGMgPD0gZGVsdGEgKiBuTmVpZ2hib3JzICogZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzb3J0ZWQgPSBoZWFwLmRlaGVhcFNvcnQoY3VycmVudEdyYXBoKTtcbiAgICAgICAgcmV0dXJuIHNvcnRlZDtcbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VJbml0aWFsaXphdGlvbnMoZGlzdGFuY2VGbikge1xuICAgIGZ1bmN0aW9uIGluaXRGcm9tUmFuZG9tKG5OZWlnaGJvcnMsIGRhdGEsIHF1ZXJ5UG9pbnRzLCBfaGVhcCwgcmFuZG9tKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlcnlQb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSB1dGlscy5yZWplY3Rpb25TYW1wbGUobk5laWdoYm9ycywgZGF0YS5sZW5ndGgsIHJhbmRvbSk7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGluZGljZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kaWNlc1tqXSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBkaXN0YW5jZUZuKGRhdGFbaW5kaWNlc1tqXV0sIHF1ZXJ5UG9pbnRzW2ldKTtcbiAgICAgICAgICAgICAgICBoZWFwLmhlYXBQdXNoKF9oZWFwLCBpLCBkLCBpbmRpY2VzW2pdLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0RnJvbVRyZWUoX3RyZWUsIGRhdGEsIHF1ZXJ5UG9pbnRzLCBfaGVhcCwgcmFuZG9tKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlcnlQb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSB0cmVlLnNlYXJjaEZsYXRUcmVlKHF1ZXJ5UG9pbnRzW2ldLCBfdHJlZSwgcmFuZG9tKTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaW5kaWNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGlmIChpbmRpY2VzW2pdIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBkaXN0YW5jZUZuKGRhdGFbaW5kaWNlc1tqXV0sIHF1ZXJ5UG9pbnRzW2ldKTtcbiAgICAgICAgICAgICAgICBoZWFwLmhlYXBQdXNoKF9oZWFwLCBpLCBkLCBpbmRpY2VzW2pdLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB7IGluaXRGcm9tUmFuZG9tLCBpbml0RnJvbVRyZWUgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtYWtlSW5pdGlhbGl6ZWROTlNlYXJjaChkaXN0YW5jZUZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG5uU2VhcmNoRm4oZGF0YSwgZ3JhcGgsIGluaXRpYWxpemF0aW9uLCBxdWVyeVBvaW50cykge1xuICAgICAgICBjb25zdCB7IGluZGljZXMsIGluZHB0ciB9ID0gbWF0cml4LmdldENTUihncmFwaCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlcnlQb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHRyaWVkID0gbmV3IFNldChpbml0aWFsaXphdGlvblswXVtpXSk7XG4gICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgICAgIC8vIEZpbmQgc21hbGxlc3QgZmxhZ2dlZCB2ZXJ0ZXhcbiAgICAgICAgICAgICAgICBjb25zdCB2ZXJ0ZXggPSBoZWFwLnNtYWxsZXN0RmxhZ2dlZChpbml0aWFsaXphdGlvbiwgaSk7XG4gICAgICAgICAgICAgICAgaWYgKHZlcnRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBpbmRpY2VzLnNsaWNlKGluZHB0clt2ZXJ0ZXhdLCBpbmRwdHJbdmVydGV4ICsgMV0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZSA9PT0gdmVydGV4IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPT09IC0xIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmllZC5oYXMoY2FuZGlkYXRlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IGRpc3RhbmNlRm4oZGF0YVtjYW5kaWRhdGVdLCBxdWVyeVBvaW50c1tpXSk7XG4gICAgICAgICAgICAgICAgICAgIGhlYXAudW5jaGVja2VkSGVhcFB1c2goaW5pdGlhbGl6YXRpb24sIGksIGQsIGNhbmRpZGF0ZSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHRyaWVkLmFkZChjYW5kaWRhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5pdGlhbGl6YXRpb247XG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplU2VhcmNoKGZvcmVzdCwgZGF0YSwgcXVlcnlQb2ludHMsIG5OZWlnaGJvcnMsIGluaXRGcm9tUmFuZG9tLCBpbml0RnJvbVRyZWUsIHJhbmRvbSkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBoZWFwLm1ha2VIZWFwKHF1ZXJ5UG9pbnRzLmxlbmd0aCwgbk5laWdoYm9ycyk7XG4gICAgaW5pdEZyb21SYW5kb20obk5laWdoYm9ycywgZGF0YSwgcXVlcnlQb2ludHMsIHJlc3VsdHMsIHJhbmRvbSk7XG4gICAgaWYgKGZvcmVzdCkge1xuICAgICAgICBmb3IgKGxldCB0cmVlIG9mIGZvcmVzdCkge1xuICAgICAgICAgICAgaW5pdEZyb21UcmVlKHRyZWUsIGRhdGEsIHF1ZXJ5UG9pbnRzLCByZXN1bHRzLCByYW5kb20pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYm01ZlpHVnpZMlZ1ZEM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTV1WDJSbGMyTmxiblF1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3T3pzN096czdPenM3T3pzN08wZEJhVUpITzBGQlJVZzdPenM3TzBkQlMwYzdRVUZGU0RzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEhRU3RDUnp0QlFVVklMRTlCUVU4c1MwRkJTeXhKUVVGSkxFMUJRVTBzVVVGQlVTeERRVUZETzBGQlF5OUNMRTlCUVU4c1MwRkJTeXhOUVVGTkxFMUJRVTBzVlVGQlZTeERRVUZETzBGQlEyNURMRTlCUVU4c1MwRkJTeXhKUVVGSkxFMUJRVTBzVVVGQlVTeERRVUZETzBGQlF5OUNMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzVTBGQlV5eERRVUZETzBGQlIycERPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEdGQlFXRXNRMEZCUXl4VlFVRnpRaXhGUVVGRkxFMUJRV2RDTzBsQlEzQkZMRTlCUVU4c1UwRkJVeXhUUVVGVExFTkJRM1pDTEVsQlFWa3NSVUZEV2l4VFFVRnJRaXhGUVVOc1FpeFZRVUZyUWl4RlFVTnNRaXhOUVVGTkxFZEJRVWNzUlVGQlJTeEZRVU5ZTEdGQlFXRXNSMEZCUnl4RlFVRkZMRVZCUTJ4Q0xFdEJRVXNzUjBGQlJ5eExRVUZMTEVWQlEySXNSMEZCUnl4SFFVRkhMRWRCUVVjc1JVRkRWQ3hWUVVGVkxFZEJRVWNzU1VGQlNUdFJRVVZxUWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzFGQlF6bENMRTFCUVUwc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVVUxUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU53UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEzUkZMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTjJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVVZvUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRha1FzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4WlFVRlpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGJFUTdVMEZEUmp0UlFVTkVMRWxCUVVrc1ZVRkJWU3hGUVVGRk8xbEJRMlFzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRM3BETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzI5Q1FVTTFReXhKUVVGSkxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVU3ZDBKQlEzWkNMRTFCUVUwN2NVSkJRMUE3YjBKQlEwUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPM2RDUVVOb1JDeEpRVUZKTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVTdORUpCUTNaQ0xFMUJRVTA3ZVVKQlExQTdkMEpCUTBRc1RVRkJUU3hEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenQzUWtGRGJrVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhaUVVGWkxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdkMEpCUTNCRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNXVUZCV1N4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8zRkNRVU55UlR0cFFrRkRSanRoUVVOR08xTkJRMFk3VVVGRlJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXk5Q0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGRE4wTXNXVUZCV1N4RlFVTmFMRk5CUVZNc1JVRkRWQ3hWUVVGVkxFVkJRMVlzWVVGQllTeEZRVU5pTEUxQlFVMHNRMEZEVUN4RFFVRkRPMWxCUlVZc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlExWXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZOQlFWTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRGJFTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEdGQlFXRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHR2UWtGRGRFTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU5vUkN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhIUVVGSExFVkJRVVU3ZDBKQlEzaERMRk5CUVZNN2NVSkJRMVk3YjBKQlEwUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEdGQlFXRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHQzUWtGRGRFTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8zZENRVU5zUkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRka01zVFVGQlRTeEZRVUZGTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlEzWkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVU3TkVKQlEzcENMRk5CUVZNN2VVSkJRMVk3ZDBKQlJVUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dDNRa0ZEZGtNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPM2RDUVVNM1F5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03Y1VKQlF6bERPMmxDUVVOR08yRkJRMFk3V1VGRFJDeEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMRWRCUVVjc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTNwRExFMUJRVTA3WVVGRFVEdFRRVU5HTzFGQlEwUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTTNReXhQUVVGUExFMUJRVTBzUTBGQlF6dEpRVU5vUWl4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRE8wRkJhMEpFTEUxQlFVMHNWVUZCVlN4dFFrRkJiVUlzUTBGQlF5eFZRVUZ6UWp0SlFVTjRSQ3hUUVVGVExHTkJRV01zUTBGRGNrSXNWVUZCYTBJc1JVRkRiRUlzU1VGQldTeEZRVU5hTEZkQlFXMUNMRVZCUTI1Q0xFdEJRV2RDTEVWQlEyaENMRTFCUVdkQ08xRkJSV2hDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRek5ETEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGRrVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlEzWkRMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlR0dlFrRkRiRUlzVTBGQlV6dHBRa0ZEVmp0blFrRkRSQ3hOUVVGTkxFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU4yUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTXpRenRUUVVOR08wbEJRMGdzUTBGQlF6dEpRVVZFTEZOQlFWTXNXVUZCV1N4RFFVTnVRaXhMUVVGdlFpeEZRVU53UWl4SlFVRlpMRVZCUTFvc1YwRkJiVUlzUlVGRGJrSXNTMEZCWjBJc1JVRkRhRUlzVFVGQlowSTdVVUZGYUVJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZETTBNc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUlc1RkxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOMlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlEyeENMRTlCUVU4N2FVSkJRMUk3WjBKQlEwUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRka1FzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRE0wTTdVMEZEUmp0UlFVTkVMRTlCUVU4N1NVRkRWQ3hEUVVGRE8wbEJSVVFzVDBGQlR5eEZRVUZGTEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJRenRCUVVNeFF5eERRVUZETzBGQlUwUXNUVUZCVFN4VlFVRlZMSFZDUVVGMVFpeERRVUZETEZWQlFYTkNPMGxCUXpWRUxFOUJRVThzVTBGQlV5eFZRVUZWTEVOQlEzaENMRWxCUVZrc1JVRkRXaXhMUVVFd1FpeEZRVU14UWl4alFVRjVRaXhGUVVONlFpeFhRVUZ0UWp0UlFVVnVRaXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZGYWtRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZETTBNc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZETlVNc1QwRkJUeXhKUVVGSkxFVkJRVVU3WjBKQlExZ3NLMEpCUVN0Q08yZENRVU12UWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRmRrUXNTVUZCU1N4TlFVRk5MRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3YjBKQlEycENMRTFCUVUwN2FVSkJRMUE3WjBKQlEwUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOeVJTeExRVUZMTEUxQlFVMHNVMEZCVXl4SlFVRkpMRlZCUVZVc1JVRkJSVHR2UWtGRGJFTXNTVUZEUlN4VFFVRlRMRXRCUVVzc1RVRkJUVHQzUWtGRGNFSXNVMEZCVXl4TFFVRkxMRU5CUVVNc1EwRkJRenQzUWtGRGFFSXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUlVGRGNFSTdkMEpCUTBFc1UwRkJVenR4UWtGRFZqdHZRa0ZEUkN4TlFVRk5MRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTjBSQ3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU16UkN4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzJsQ1FVTjBRanRoUVVOR08xTkJRMFk3VVVGRFJDeFBRVUZQTEdOQlFXTXNRMEZCUXp0SlFVTjRRaXhEUVVGRExFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2RDUVVGblFpeERRVU01UWl4TlFVRjFRaXhGUVVOMlFpeEpRVUZaTEVWQlExb3NWMEZCYlVJc1JVRkRia0lzVlVGQmEwSXNSVUZEYkVJc1kwRkJaME1zUlVGRGFFTXNXVUZCTkVJc1JVRkROVUlzVFVGQlowSTdTVUZGYUVJc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hGUVVGRkxGVkJRVlVzUTBGQlF5eERRVUZETzBsQlF6bEVMR05CUVdNc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeEZRVUZGTEZkQlFWY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGREwwUXNTVUZCU1N4TlFVRk5MRVZCUVVVN1VVRkRWaXhMUVVGTExFbEJRVWtzU1VGQlNTeEpRVUZKTEUxQlFVMHNSVUZCUlR0WlFVTjJRaXhaUVVGWkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFOQlEzaEVPMHRCUTBZN1NVRkRSQ3hQUVVGUExFOUJRVThzUTBGQlF6dEJRVU5xUWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvcVhHNGdLaUJBYkdsalpXNXpaVnh1SUNwY2JpQXFJRU52Y0hseWFXZG9kQ0F5TURFNUlFZHZiMmRzWlNCTVRFTXVJRUZzYkNCU2FXZG9kSE1nVW1WelpYSjJaV1F1WEc0Z0tseHVJQ29nVEdsalpXNXpaV1FnZFc1a1pYSWdkR2hsSUVGd1lXTm9aU0JNYVdObGJuTmxMQ0JXWlhKemFXOXVJREl1TUNBb2RHaGxJRndpVEdsalpXNXpaVndpS1R0Y2JpQXFJSGx2ZFNCdFlYa2dibTkwSUhWelpTQjBhR2x6SUdacGJHVWdaWGhqWlhCMElHbHVJR052YlhCc2FXRnVZMlVnZDJsMGFDQjBhR1VnVEdsalpXNXpaUzVjYmlBcUlGbHZkU0J0WVhrZ2IySjBZV2x1SUdFZ1kyOXdlU0J2WmlCMGFHVWdUR2xqWlc1elpTQmhkRnh1SUNwY2JpQXFJQ0FnSUNCb2RIUndPaTh2ZDNkM0xtRndZV05vWlM1dmNtY3ZiR2xqWlc1elpYTXZURWxEUlU1VFJTMHlMakJjYmlBcVhHNGdLaUJWYm14bGMzTWdjbVZ4ZFdseVpXUWdZbmtnWVhCd2JHbGpZV0pzWlNCc1lYY2diM0lnWVdkeVpXVmtJSFJ2SUdsdUlIZHlhWFJwYm1jc0lITnZablIzWVhKbFhHNGdLaUJrYVhOMGNtbGlkWFJsWkNCMWJtUmxjaUIwYUdVZ1RHbGpaVzV6WlNCcGN5QmthWE4wY21saWRYUmxaQ0J2YmlCaGJpQmNJa0ZUSUVsVFhDSWdRa0ZUU1ZNc1hHNGdLaUJYU1ZSSVQxVlVJRmRCVWxKQlRsUkpSVk1nVDFJZ1EwOU9SRWxVU1U5T1V5QlBSaUJCVGxrZ1MwbE9SQ3dnWldsMGFHVnlJR1Y0Y0hKbGMzTWdiM0lnYVcxd2JHbGxaQzVjYmlBcUlGTmxaU0IwYUdVZ1RHbGpaVzV6WlNCbWIzSWdkR2hsSUhOd1pXTnBabWxqSUd4aGJtZDFZV2RsSUdkdmRtVnlibWx1WnlCd1pYSnRhWE56YVc5dWN5QmhibVJjYmlBcUlHeHBiV2wwWVhScGIyNXpJSFZ1WkdWeUlIUm9aU0JNYVdObGJuTmxMbHh1SUNvZ1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEc0Z0tpOWNibHh1THlvcVhHNGdLaUJVYUdseklHbHpJR0VnU21GMllWTmpjbWx3ZENCeVpXbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlGVk5RVkFnS0c5eWFXZHBibUZzSUd4cFkyVnVjMlVnWW1Wc2IzY3BMQ0JtY205dFhHNGdLaUIwYUdVZ2NIbDBhRzl1SUdsdGNHeGxiV1Z1ZEdGMGFXOXVJR1p2ZFc1a0lHRjBJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzlzYldOcGJtNWxjeTkxYldGd0xseHVJQ3BjYmlBcUlFQmhkWFJvYjNJZ1lXNWtlV052Wlc1bGJrQm5iMjluYkdVdVkyOXRJQ2hCYm1SNUlFTnZaVzVsYmlsY2JpQXFMMXh1WEc0dktpcGNiaUFxSUVCc2FXTmxibk5sWEc0Z0tpQkNVMFFnTXkxRGJHRjFjMlVnVEdsalpXNXpaVnh1SUNwY2JpQXFJRU52Y0hseWFXZG9kQ0FvWXlrZ01qQXhOeXdnVEdWc1lXNWtJRTFqU1c1dVpYTmNiaUFxSUVGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNGdLbHh1SUNvZ1VtVmthWE4wY21saWRYUnBiMjRnWVc1a0lIVnpaU0JwYmlCemIzVnlZMlVnWVc1a0lHSnBibUZ5ZVNCbWIzSnRjeXdnZDJsMGFDQnZjaUIzYVhSb2IzVjBYRzRnS2lCdGIyUnBabWxqWVhScGIyNHNJR0Z5WlNCd1pYSnRhWFIwWldRZ2NISnZkbWxrWldRZ2RHaGhkQ0IwYUdVZ1ptOXNiRzkzYVc1bklHTnZibVJwZEdsdmJuTWdZWEpsSUcxbGREcGNiaUFxWEc0Z0tpQXFJRkpsWkdsemRISnBZblYwYVc5dWN5QnZaaUJ6YjNWeVkyVWdZMjlrWlNCdGRYTjBJSEpsZEdGcGJpQjBhR1VnWVdKdmRtVWdZMjl3ZVhKcFoyaDBJRzV2ZEdsalpTd2dkR2hwYzF4dUlDb2dJQ0JzYVhOMElHOW1JR052Ym1ScGRHbHZibk1nWVc1a0lIUm9aU0JtYjJ4c2IzZHBibWNnWkdselkyeGhhVzFsY2k1Y2JpQXFYRzRnS2lBcUlGSmxaR2x6ZEhKcFluVjBhVzl1Y3lCcGJpQmlhVzVoY25rZ1ptOXliU0J0ZFhOMElISmxjSEp2WkhWalpTQjBhR1VnWVdKdmRtVWdZMjl3ZVhKcFoyaDBJRzV2ZEdsalpTeGNiaUFxSUNBZ2RHaHBjeUJzYVhOMElHOW1JR052Ym1ScGRHbHZibk1nWVc1a0lIUm9aU0JtYjJ4c2IzZHBibWNnWkdselkyeGhhVzFsY2lCcGJpQjBhR1VnWkc5amRXMWxiblJoZEdsdmJseHVJQ29nSUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JpQXFYRzRnS2lBcUlFNWxhWFJvWlhJZ2RHaGxJRzVoYldVZ2IyWWdkR2hsSUdOdmNIbHlhV2RvZENCb2IyeGtaWElnYm05eUlIUm9aU0J1WVcxbGN5QnZaaUJwZEhOY2JpQXFJQ0FnWTI5dWRISnBZblYwYjNKeklHMWhlU0JpWlNCMWMyVmtJSFJ2SUdWdVpHOXljMlVnYjNJZ2NISnZiVzkwWlNCd2NtOWtkV04wY3lCa1pYSnBkbVZrSUdaeWIyMWNiaUFxSUNBZ2RHaHBjeUJ6YjJaMGQyRnlaU0IzYVhSb2IzVjBJSE53WldOcFptbGpJSEJ5YVc5eUlIZHlhWFIwWlc0Z2NHVnliV2x6YzJsdmJpNWNiaUFxWEc0Z0tpQlVTRWxUSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlFSlpJRlJJUlNCRFQxQlpVa2xIU0ZRZ1NFOU1SRVZTVXlCQlRrUWdRMDlPVkZKSlFsVlVUMUpUSUZ3aVFWTWdTVk5jSWx4dUlDb2dRVTVFSUVGT1dTQkZXRkJTUlZOVElFOVNJRWxOVUV4SlJVUWdWMEZTVWtGT1ZFbEZVeXdnU1U1RFRGVkVTVTVITENCQ1ZWUWdUazlVSUV4SlRVbFVSVVFnVkU4c0lGUklSVnh1SUNvZ1NVMVFURWxGUkNCWFFWSlNRVTVVU1VWVElFOUdJRTFGVWtOSVFVNVVRVUpKVEVsVVdTQkJUa1FnUmtsVVRrVlRVeUJHVDFJZ1FTQlFRVkpVU1VOVlRFRlNJRkJWVWxCUFUwVWdRVkpGWEc0Z0tpQkVTVk5EVEVGSlRVVkVMaUJKVGlCT1R5QkZWa1ZPVkNCVFNFRk1UQ0JVU0VVZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWlCUFVpQkRUMDVVVWtsQ1ZWUlBVbE1nUWtVZ1RFbEJRa3hGWEc0Z0tpQkdUMUlnUVU1WklFUkpVa1ZEVkN3Z1NVNUVTVkpGUTFRc0lFbE9RMGxFUlU1VVFVd3NJRk5RUlVOSlFVd3NJRVZZUlUxUVRFRlNXU3dnVDFJZ1EwOU9VMFZSVlVWT1ZFbEJURnh1SUNvZ1JFRk5RVWRGVXlBb1NVNURURlZFU1U1SExDQkNWVlFnVGs5VUlFeEpUVWxVUlVRZ1ZFOHNJRkJTVDBOVlVrVk5SVTVVSUU5R0lGTlZRbE5VU1ZSVlZFVWdSMDlQUkZNZ1QxSmNiaUFxSUZORlVsWkpRMFZUT3lCTVQxTlRJRTlHSUZWVFJTd2dSRUZVUVN3Z1QxSWdVRkpQUmtsVVV6c2dUMUlnUWxWVFNVNUZVMU1nU1U1VVJWSlNWVkJVU1U5T0tTQklUMWRGVmtWU1hHNGdLaUJEUVZWVFJVUWdRVTVFSUU5T0lFRk9XU0JVU0VWUFVsa2dUMFlnVEVsQlFrbE1TVlJaTENCWFNFVlVTRVZTSUVsT0lFTlBUbFJTUVVOVUxDQlRWRkpKUTFRZ1RFbEJRa2xNU1ZSWkxGeHVJQ29nVDFJZ1ZFOVNWQ0FvU1U1RFRGVkVTVTVISUU1RlIweEpSMFZPUTBVZ1QxSWdUMVJJUlZKWFNWTkZLU0JCVWtsVFNVNUhJRWxPSUVGT1dTQlhRVmtnVDFWVUlFOUdJRlJJUlNCVlUwVmNiaUFxSUU5R0lGUklTVk1nVTA5R1ZGZEJVa1VzSUVWV1JVNGdTVVlnUVVSV1NWTkZSQ0JQUmlCVVNFVWdVRTlUVTBsQ1NVeEpWRmtnVDBZZ1UxVkRTQ0JFUVUxQlIwVXVYRzRnS2k5Y2JseHVhVzF3YjNKMElDb2dZWE1nYUdWaGNDQm1jbTl0SUNjdUwyaGxZWEFuTzF4dWFXMXdiM0owSUNvZ1lYTWdiV0YwY21sNElHWnliMjBnSnk0dmJXRjBjbWw0Snp0Y2JtbHRjRzl5ZENBcUlHRnpJSFJ5WldVZ1puSnZiU0FuTGk5MGNtVmxKenRjYm1sdGNHOXlkQ0FxSUdGeklIVjBhV3h6SUdaeWIyMGdKeTR2ZFhScGJITW5PMXh1YVcxd2IzSjBJSHNnVW1GdVpHOXRSbTRzSUZabFkzUnZjbk1zSUVScGMzUmhibU5sUm00c0lGWmxZM1J2Y2lCOUlHWnliMjBnSnk0dmRXMWhjQ2M3WEc1Y2JpOHFLbHh1SUNvZ1EzSmxZWFJsSUdFZ2RtVnljMmx2YmlCdlppQnVaV0Z5WlhOMElHNWxhV2RvWW05eUlHUmxjMk5sYm5RdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ0WVd0bFRrNUVaWE5qWlc1MEtHUnBjM1JoYm1ObFJtNDZJRVJwYzNSaGJtTmxSbTRzSUhKaGJtUnZiVG9nVW1GdVpHOXRSbTRwSUh0Y2JpQWdjbVYwZFhKdUlHWjFibU4wYVc5dUlHNU9SR1Z6WTJWdWRDaGNiaUFnSUNCa1lYUmhPaUJXWldOMGIzSXNYRzRnSUNBZ2JHVmhaa0Z5Y21GNU9pQldaV04wYjNKekxGeHVJQ0FnSUc1T1pXbG5hR0p2Y25NNklHNTFiV0psY2l4Y2JpQWdJQ0J1U1hSbGNuTWdQU0F4TUN4Y2JpQWdJQ0J0WVhoRFlXNWthV1JoZEdWeklEMGdOVEFzWEc0Z0lDQWdaR1ZzZEdFZ1BTQXdMakF3TVN4Y2JpQWdJQ0J5YUc4Z1BTQXdMalVzWEc0Z0lDQWdjbkJVY21WbFNXNXBkQ0E5SUhSeWRXVmNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdibFpsY25ScFkyVnpJRDBnWkdGMFlTNXNaVzVuZEdnN1hHNGdJQ0FnWTI5dWMzUWdZM1Z5Y21WdWRFZHlZWEJvSUQwZ2FHVmhjQzV0WVd0bFNHVmhjQ2hrWVhSaExteGxibWQwYUN3Z2JrNWxhV2RvWW05eWN5azdYRzVjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JoZEdFdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHbHVaR2xqWlhNZ1BTQm9aV0Z3TG5KbGFtVmpkR2x2YmxOaGJYQnNaU2h1VG1WcFoyaGliM0p6TENCa1lYUmhMbXhsYm1kMGFDd2djbUZ1Wkc5dEtUdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2dhVzVrYVdObGN5NXNaVzVuZEdnN0lHb3JLeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrSUQwZ1pHbHpkR0Z1WTJWR2JpaGtZWFJoVzJsZExDQmtZWFJoVzJsdVpHbGpaWE5iYWwxZEtUdGNibHh1SUNBZ0lDQWdJQ0JvWldGd0xtaGxZWEJRZFhOb0tHTjFjbkpsYm5SSGNtRndhQ3dnYVN3Z1pDd2dhVzVrYVdObGMxdHFYU3dnTVNrN1hHNGdJQ0FnSUNBZ0lHaGxZWEF1YUdWaGNGQjFjMmdvWTNWeWNtVnVkRWR5WVhCb0xDQnBibVJwWTJWelcycGRMQ0JrTENCcExDQXhLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLSEp3VkhKbFpVbHVhWFFwSUh0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUc0Z1BTQXdPeUJ1SUR3Z2JHVmhaa0Z5Y21GNUxteGxibWQwYURzZ2Jpc3JLU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JHVmhaa0Z5Y21GNVcyNWRMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0d4bFlXWkJjbkpoZVZ0dVhWdHBYU0E4SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnFJRDBnYVNBcklERTdJR29nUENCc1pXRm1RWEp5WVhsYmJsMHViR1Z1WjNSb095QnFLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoc1pXRm1RWEp5WVhsYmJsMWJhbDBnUENBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkNBOUlHUnBjM1JoYm1ObFJtNG9aR0YwWVZ0c1pXRm1RWEp5WVhsYmJsMWJhVjFkTENCa1lYUmhXMnhsWVdaQmNuSmhlVnR1WFZ0cVhWMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FHVmhjQzVvWldGd1VIVnphQ2hqZFhKeVpXNTBSM0poY0dnc0lHeGxZV1pCY25KaGVWdHVYVnRwWFN3Z1pDd2diR1ZoWmtGeWNtRjVXMjVkVzJwZExDQXhLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHaGxZWEF1YUdWaGNGQjFjMmdvWTNWeWNtVnVkRWR5WVhCb0xDQnNaV0ZtUVhKeVlYbGJibDFiYWwwc0lHUXNJR3hsWVdaQmNuSmhlVnR1WFZ0cFhTd2dNU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2JpQTlJREE3SUc0Z1BDQnVTWFJsY25NN0lHNHJLeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMkZ1Wkdsa1lYUmxUbVZwWjJoaWIzSnpJRDBnYUdWaGNDNWlkV2xzWkVOaGJtUnBaR0YwWlhNb1hHNGdJQ0FnSUNBZ0lHTjFjbkpsYm5SSGNtRndhQ3hjYmlBZ0lDQWdJQ0FnYmxabGNuUnBZMlZ6TEZ4dUlDQWdJQ0FnSUNCdVRtVnBaMmhpYjNKekxGeHVJQ0FnSUNBZ0lDQnRZWGhEWVc1a2FXUmhkR1Z6TEZ4dUlDQWdJQ0FnSUNCeVlXNWtiMjFjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUd4bGRDQmpJRDBnTUR0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JsWmxjblJwWTJWek95QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJREE3SUdvZ1BDQnRZWGhEWVc1a2FXUmhkR1Z6T3lCcUt5c3BJSHRjYmlBZ0lDQWdJQ0FnSUNCc1pYUWdjQ0E5SUUxaGRHZ3VabXh2YjNJb1kyRnVaR2xrWVhSbFRtVnBaMmhpYjNKeld6QmRXMmxkVzJwZEtUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2NDQThJREFnZkh3Z2RYUnBiSE11ZEdGMVVtRnVaQ2h5WVc1a2IyMHBJRHdnY21odktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYXlBOUlEQTdJR3NnUENCdFlYaERZVzVrYVdSaGRHVnpPeUJyS3lzcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSEVnUFNCTllYUm9MbVpzYjI5eUtHTmhibVJwWkdGMFpVNWxhV2RvWW05eWMxc3dYVnRwWFZ0clhTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqYWlBOUlHTmhibVJwWkdGMFpVNWxhV2RvWW05eWMxc3lYVnRwWFZ0cVhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR05ySUQwZ1kyRnVaR2xrWVhSbFRtVnBaMmhpYjNKeld6SmRXMmxkVzJ0ZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIRWdQQ0F3SUh4OElDZ2hZMm9nSmlZZ0lXTnJLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkNBOUlHUnBjM1JoYm1ObFJtNG9aR0YwWVZ0d1hTd2daR0YwWVZ0eFhTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCaklDczlJR2hsWVhBdWFHVmhjRkIxYzJnb1kzVnljbVZ1ZEVkeVlYQm9MQ0J3TENCa0xDQnhMQ0F4S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR01nS3owZ2FHVmhjQzVvWldGd1VIVnphQ2hqZFhKeVpXNTBSM0poY0dnc0lIRXNJR1FzSUhBc0lERXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLR01nUEQwZ1pHVnNkR0VnS2lCdVRtVnBaMmhpYjNKeklDb2daR0YwWVM1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhOdmNuUmxaQ0E5SUdobFlYQXVaR1ZvWldGd1UyOXlkQ2hqZFhKeVpXNTBSM0poY0dncE8xeHVJQ0FnSUhKbGRIVnliaUJ6YjNKMFpXUTdYRzRnSUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0IwZVhCbElFbHVhWFJHY205dFVtRnVaRzl0Um00Z1BTQW9YRzRnSUc1T1pXbG5hR0p2Y25NNklHNTFiV0psY2l4Y2JpQWdaR0YwWVRvZ1ZtVmpkRzl5TEZ4dUlDQnhkV1Z5ZVZCdmFXNTBjem9nVm1WamRHOXlMRnh1SUNCZmFHVmhjRG9nYUdWaGNDNUlaV0Z3TEZ4dUlDQnlZVzVrYjIwNklGSmhibVJ2YlVadVhHNHBJRDArSUhadmFXUTdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFbHVhWFJHY205dFZISmxaVVp1SUQwZ0tGeHVJQ0JmZEhKbFpUb2dkSEpsWlM1R2JHRjBWSEpsWlN4Y2JpQWdaR0YwWVRvZ1ZtVmpkRzl5TEZ4dUlDQnhkV1Z5ZVZCdmFXNTBjem9nVm1WamRHOXlMRnh1SUNCZmFHVmhjRG9nYUdWaGNDNUlaV0Z3TEZ4dUlDQnlZVzVrYjIwNklGSmhibVJ2YlVadVhHNHBJRDArSUhadmFXUTdYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ0WVd0bFNXNXBkR2xoYkdsNllYUnBiMjV6S0dScGMzUmhibU5sUm00NklFUnBjM1JoYm1ObFJtNHBJSHRjYmlBZ1puVnVZM1JwYjI0Z2FXNXBkRVp5YjIxU1lXNWtiMjBvWEc0Z0lDQWdiazVsYVdkb1ltOXljem9nYm5WdFltVnlMRnh1SUNBZ0lHUmhkR0U2SUZabFkzUnZjaXhjYmlBZ0lDQnhkV1Z5ZVZCdmFXNTBjem9nVm1WamRHOXlMRnh1SUNBZ0lGOW9aV0Z3T2lCb1pXRndMa2hsWVhBc1hHNGdJQ0FnY21GdVpHOXRPaUJTWVc1a2IyMUdibHh1SUNBcElIdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIRjFaWEo1VUc5cGJuUnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JwYm1ScFkyVnpJRDBnZFhScGJITXVjbVZxWldOMGFXOXVVMkZ0Y0d4bEtHNU9aV2xuYUdKdmNuTXNJR1JoZEdFdWJHVnVaM1JvTENCeVlXNWtiMjBwTzF4dUlDQWdJQ0FnWm05eUlDaHNaWFFnYWlBOUlEQTdJR29nUENCcGJtUnBZMlZ6TG14bGJtZDBhRHNnYWlzcktTQjdYRzRnSUNBZ0lDQWdJR2xtSUNocGJtUnBZMlZ6VzJwZElEd2dNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR052Ym5OMElHUWdQU0JrYVhOMFlXNWpaVVp1S0dSaGRHRmJhVzVrYVdObGMxdHFYVjBzSUhGMVpYSjVVRzlwYm5SelcybGRLVHRjYmlBZ0lDQWdJQ0FnYUdWaGNDNW9aV0Z3VUhWemFDaGZhR1ZoY0N3Z2FTd2daQ3dnYVc1a2FXTmxjMXRxWFN3Z01TazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdablZ1WTNScGIyNGdhVzVwZEVaeWIyMVVjbVZsS0Z4dUlDQWdJRjkwY21WbE9pQjBjbVZsTGtac1lYUlVjbVZsTEZ4dUlDQWdJR1JoZEdFNklGWmxZM1J2Y2l4Y2JpQWdJQ0J4ZFdWeWVWQnZhVzUwY3pvZ1ZtVmpkRzl5TEZ4dUlDQWdJRjlvWldGd09pQm9aV0Z3TGtobFlYQXNYRzRnSUNBZ2NtRnVaRzl0T2lCU1lXNWtiMjFHYmx4dUlDQXBJSHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSEYxWlhKNVVHOXBiblJ6TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCcGJtUnBZMlZ6SUQwZ2RISmxaUzV6WldGeVkyaEdiR0YwVkhKbFpTaHhkV1Z5ZVZCdmFXNTBjMXRwWFN3Z1gzUnlaV1VzSUhKaGJtUnZiU2s3WEc1Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQXdPeUJxSUR3Z2FXNWthV05sY3k1c1pXNW5kR2c3SUdvckt5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FXNWthV05sYzF0cVhTQThJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pDQTlJR1JwYzNSaGJtTmxSbTRvWkdGMFlWdHBibVJwWTJWelcycGRYU3dnY1hWbGNubFFiMmx1ZEhOYmFWMHBPMXh1SUNBZ0lDQWdJQ0JvWldGd0xtaGxZWEJRZFhOb0tGOW9aV0Z3TENCcExDQmtMQ0JwYm1ScFkyVnpXMnBkTENBeEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJSHNnYVc1cGRFWnliMjFTWVc1a2IyMHNJR2x1YVhSR2NtOXRWSEpsWlNCOU8xeHVmVnh1WEc1bGVIQnZjblFnZEhsd1pTQlRaV0Z5WTJoR2JpQTlJQ2hjYmlBZ1pHRjBZVG9nVm1WamRHOXlMRnh1SUNCbmNtRndhRG9nYldGMGNtbDRMbE53WVhKelpVMWhkSEpwZUN4Y2JpQWdhVzVwZEdsaGJHbDZZWFJwYjI0NklHaGxZWEF1U0dWaGNDeGNiaUFnY1hWbGNubFFiMmx1ZEhNNklGWmxZM1J2Y2x4dUtTQTlQaUJvWldGd0xraGxZWEE3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdFlXdGxTVzVwZEdsaGJHbDZaV1JPVGxObFlYSmphQ2hrYVhOMFlXNWpaVVp1T2lCRWFYTjBZVzVqWlVadUtTQjdYRzRnSUhKbGRIVnliaUJtZFc1amRHbHZiaUJ1YmxObFlYSmphRVp1S0Z4dUlDQWdJR1JoZEdFNklGWmxZM1J2Y2l4Y2JpQWdJQ0JuY21Gd2FEb2diV0YwY21sNExsTndZWEp6WlUxaGRISnBlQ3hjYmlBZ0lDQnBibWwwYVdGc2FYcGhkR2x2YmpvZ2FHVmhjQzVJWldGd0xGeHVJQ0FnSUhGMVpYSjVVRzlwYm5Sek9pQldaV04wYjNKY2JpQWdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QnBibVJwWTJWekxDQnBibVJ3ZEhJZ2ZTQTlJRzFoZEhKcGVDNW5aWFJEVTFJb1ozSmhjR2dwTzF4dVhHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCeGRXVnllVkJ2YVc1MGN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkSEpwWldRZ1BTQnVaWGNnVTJWMEtHbHVhWFJwWVd4cGVtRjBhVzl1V3pCZFcybGRLVHRjYmlBZ0lDQWdJSGRvYVd4bElDaDBjblZsS1NCN1hHNGdJQ0FnSUNBZ0lDOHZJRVpwYm1RZ2MyMWhiR3hsYzNRZ1pteGhaMmRsWkNCMlpYSjBaWGhjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkbVZ5ZEdWNElEMGdhR1ZoY0M1emJXRnNiR1Z6ZEVac1lXZG5aV1FvYVc1cGRHbGhiR2w2WVhScGIyNHNJR2twTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2gyWlhKMFpYZ2dQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMkZ1Wkdsa1lYUmxjeUE5SUdsdVpHbGpaWE11YzJ4cFkyVW9hVzVrY0hSeVczWmxjblJsZUYwc0lHbHVaSEIwY2x0MlpYSjBaWGdnS3lBeFhTazdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnWTJGdVpHbGtZWFJsSUc5bUlHTmhibVJwWkdGMFpYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJQ0FnSUNCallXNWthV1JoZEdVZ1BUMDlJSFpsY25SbGVDQjhmRnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnVaR2xrWVhSbElEMDlQU0F0TVNCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEhKcFpXUXVhR0Z6S0dOaGJtUnBaR0YwWlNsY2JpQWdJQ0FnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrSUQwZ1pHbHpkR0Z1WTJWR2JpaGtZWFJoVzJOaGJtUnBaR0YwWlYwc0lIRjFaWEo1VUc5cGJuUnpXMmxkS1R0Y2JpQWdJQ0FnSUNBZ0lDQm9aV0Z3TG5WdVkyaGxZMnRsWkVobFlYQlFkWE5vS0dsdWFYUnBZV3hwZW1GMGFXOXVMQ0JwTENCa0xDQmpZVzVrYVdSaGRHVXNJREVwTzF4dUlDQWdJQ0FnSUNBZ0lIUnlhV1ZrTG1Ga1pDaGpZVzVrYVdSaGRHVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCcGJtbDBhV0ZzYVhwaGRHbHZianRjYmlBZ2ZUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdsdWFYUnBZV3hwZW1WVFpXRnlZMmdvWEc0Z0lHWnZjbVZ6ZERvZ2RISmxaUzVHYkdGMFZISmxaVnRkTEZ4dUlDQmtZWFJoT2lCV1pXTjBiM0lzWEc0Z0lIRjFaWEo1VUc5cGJuUnpPaUJXWldOMGIzSXNYRzRnSUc1T1pXbG5hR0p2Y25NNklHNTFiV0psY2l4Y2JpQWdhVzVwZEVaeWIyMVNZVzVrYjIwNklFbHVhWFJHY205dFVtRnVaRzl0Um00c1hHNGdJR2x1YVhSR2NtOXRWSEpsWlRvZ1NXNXBkRVp5YjIxVWNtVmxSbTRzWEc0Z0lISmhibVJ2YlRvZ1VtRnVaRzl0Um01Y2Jpa2dlMXh1SUNCamIyNXpkQ0J5WlhOMWJIUnpJRDBnYUdWaGNDNXRZV3RsU0dWaGNDaHhkV1Z5ZVZCdmFXNTBjeTVzWlc1bmRHZ3NJRzVPWldsbmFHSnZjbk1wTzF4dUlDQnBibWwwUm5KdmJWSmhibVJ2YlNodVRtVnBaMmhpYjNKekxDQmtZWFJoTENCeGRXVnllVkJ2YVc1MGN5d2djbVZ6ZFd4MGN5d2djbUZ1Wkc5dEtUdGNiaUFnYVdZZ0tHWnZjbVZ6ZENrZ2UxeHVJQ0FnSUdadmNpQW9iR1YwSUhSeVpXVWdiMllnWm05eVpYTjBLU0I3WEc0Z0lDQWdJQ0JwYm1sMFJuSnZiVlJ5WldVb2RISmxaU3dnWkdGMFlTd2djWFZsY25sUWIybHVkSE1zSUhKbGMzVnNkSE1zSUhKaGJtUnZiU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSEpsZEhWeWJpQnlaWE4xYkhSek8xeHVmVnh1SWwxOSIsImltcG9ydCBpc0FycmF5IGZyb20gJ2lzLWFueS1hcnJheSc7XG5cbmltcG9ydCBlcnJvckNhbGN1bGF0aW9uIGZyb20gJy4vZXJyb3JDYWxjdWxhdGlvbic7XG5pbXBvcnQgc3RlcCBmcm9tICcuL3N0ZXAnO1xuXG4vKipcbiAqIEN1cnZlIGZpdHRpbmcgYWxnb3JpdGhtXG4gKiBAcGFyYW0ge3t4OkFycmF5PG51bWJlcj4sIHk6QXJyYXk8bnVtYmVyPn19IGRhdGEgLSBBcnJheSBvZiBwb2ludHMgdG8gZml0IGluIHRoZSBmb3JtYXQgW3gxLCB4MiwgLi4uIF0sIFt5MSwgeTIsIC4uLiBdXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBwYXJhbWV0ZXJpemVkRnVuY3Rpb24gLSBUaGUgcGFyYW1ldGVycyBhbmQgcmV0dXJucyBhIGZ1bmN0aW9uIHdpdGggdGhlIGluZGVwZW5kZW50IHZhcmlhYmxlIGFzIGEgcGFyYW1ldGVyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gT3B0aW9ucyBvYmplY3RcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5kYW1waW5nXSAtIExldmVuYmVyZy1NYXJxdWFyZHQgcGFyYW1ldGVyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuZ3JhZGllbnREaWZmZXJlbmNlID0gMTBlLTJdIC0gQWRqdXN0bWVudCBmb3IgZGVjcmVhc2UgdGhlIGRhbXBpbmcgcGFyYW1ldGVyXG4gKiBAcGFyYW0ge0FycmF5PG51bWJlcj59IFtvcHRpb25zLm1pblZhbHVlc10gLSBNaW5pbXVtIGFsbG93ZWQgdmFsdWVzIGZvciBwYXJhbWV0ZXJzXG4gKiBAcGFyYW0ge0FycmF5PG51bWJlcj59IFtvcHRpb25zLm1heFZhbHVlc10gLSBNYXhpbXVtIGFsbG93ZWQgdmFsdWVzIGZvciBwYXJhbWV0ZXJzXG4gKiBAcGFyYW0ge0FycmF5PG51bWJlcj59IFtvcHRpb25zLmluaXRpYWxWYWx1ZXNdIC0gQXJyYXkgb2YgaW5pdGlhbCBwYXJhbWV0ZXIgdmFsdWVzXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4SXRlcmF0aW9ucyA9IDEwMF0gLSBNYXhpbXVtIG9mIGFsbG93ZWQgaXRlcmF0aW9uc1xuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLmVycm9yVG9sZXJhbmNlID0gMTBlLTNdIC0gTWluaW11bSB1bmNlcnRhaW50eSBhbGxvd2VkIGZvciBlYWNoIHBvaW50XG4gKiBAcmV0dXJuIHt7cGFyYW1ldGVyVmFsdWVzOiBBcnJheTxudW1iZXI+LCBwYXJhbWV0ZXJFcnJvcjogbnVtYmVyLCBpdGVyYXRpb25zOiBudW1iZXJ9fVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsZXZlbmJlcmdNYXJxdWFyZHQoXG4gIGRhdGEsXG4gIHBhcmFtZXRlcml6ZWRGdW5jdGlvbixcbiAgb3B0aW9ucyA9IHt9LFxuKSB7XG4gIGxldCB7XG4gICAgbWF4SXRlcmF0aW9ucyA9IDEwMCxcbiAgICBncmFkaWVudERpZmZlcmVuY2UgPSAxMGUtMixcbiAgICBkYW1waW5nID0gMCxcbiAgICBlcnJvclRvbGVyYW5jZSA9IDEwZS0zLFxuICAgIG1pblZhbHVlcyxcbiAgICBtYXhWYWx1ZXMsXG4gICAgaW5pdGlhbFZhbHVlcyxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKGRhbXBpbmcgPD0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRhbXBpbmcgb3B0aW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXInKTtcbiAgfSBlbHNlIGlmICghZGF0YS54IHx8ICFkYXRhLnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkYXRhIHBhcmFtZXRlciBtdXN0IGhhdmUgeCBhbmQgeSBlbGVtZW50cycpO1xuICB9IGVsc2UgaWYgKFxuICAgICFpc0FycmF5KGRhdGEueCkgfHxcbiAgICBkYXRhLngubGVuZ3RoIDwgMiB8fFxuICAgICFpc0FycmF5KGRhdGEueSkgfHxcbiAgICBkYXRhLnkubGVuZ3RoIDwgMlxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnVGhlIGRhdGEgcGFyYW1ldGVyIGVsZW1lbnRzIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBtb3JlIHRoYW4gMiBwb2ludHMnLFxuICAgICk7XG4gIH0gZWxzZSBpZiAoZGF0YS54Lmxlbmd0aCAhPT0gZGF0YS55Lmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRhdGEgcGFyYW1ldGVyIGVsZW1lbnRzIG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplJyk7XG4gIH1cblxuICBsZXQgcGFyYW1ldGVycyA9XG4gICAgaW5pdGlhbFZhbHVlcyB8fCBuZXcgQXJyYXkocGFyYW1ldGVyaXplZEZ1bmN0aW9uLmxlbmd0aCkuZmlsbCgxKTtcbiAgbGV0IHBhckxlbiA9IHBhcmFtZXRlcnMubGVuZ3RoO1xuICBtYXhWYWx1ZXMgPSBtYXhWYWx1ZXMgfHwgbmV3IEFycmF5KHBhckxlbikuZmlsbChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7XG4gIG1pblZhbHVlcyA9IG1pblZhbHVlcyB8fCBuZXcgQXJyYXkocGFyTGVuKS5maWxsKE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKTtcblxuICBpZiAobWF4VmFsdWVzLmxlbmd0aCAhPT0gbWluVmFsdWVzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbWluVmFsdWVzIGFuZCBtYXhWYWx1ZXMgbXVzdCBiZSB0aGUgc2FtZSBzaXplJyk7XG4gIH1cblxuICBpZiAoIWlzQXJyYXkocGFyYW1ldGVycykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2luaXRpYWxWYWx1ZXMgbXVzdCBiZSBhbiBhcnJheScpO1xuICB9XG5cbiAgbGV0IGVycm9yID0gZXJyb3JDYWxjdWxhdGlvbihkYXRhLCBwYXJhbWV0ZXJzLCBwYXJhbWV0ZXJpemVkRnVuY3Rpb24pO1xuXG4gIGxldCBjb252ZXJnZWQgPSBlcnJvciA8PSBlcnJvclRvbGVyYW5jZTtcblxuICBsZXQgaXRlcmF0aW9uO1xuICBmb3IgKGl0ZXJhdGlvbiA9IDA7IGl0ZXJhdGlvbiA8IG1heEl0ZXJhdGlvbnMgJiYgIWNvbnZlcmdlZDsgaXRlcmF0aW9uKyspIHtcbiAgICBwYXJhbWV0ZXJzID0gc3RlcChcbiAgICAgIGRhdGEsXG4gICAgICBwYXJhbWV0ZXJzLFxuICAgICAgZGFtcGluZyxcbiAgICAgIGdyYWRpZW50RGlmZmVyZW5jZSxcbiAgICAgIHBhcmFtZXRlcml6ZWRGdW5jdGlvbixcbiAgICApO1xuXG4gICAgZm9yIChsZXQgayA9IDA7IGsgPCBwYXJMZW47IGsrKykge1xuICAgICAgcGFyYW1ldGVyc1trXSA9IE1hdGgubWluKFxuICAgICAgICBNYXRoLm1heChtaW5WYWx1ZXNba10sIHBhcmFtZXRlcnNba10pLFxuICAgICAgICBtYXhWYWx1ZXNba10sXG4gICAgICApO1xuICAgIH1cblxuICAgIGVycm9yID0gZXJyb3JDYWxjdWxhdGlvbihkYXRhLCBwYXJhbWV0ZXJzLCBwYXJhbWV0ZXJpemVkRnVuY3Rpb24pO1xuICAgIGlmIChpc05hTihlcnJvcikpIGJyZWFrO1xuICAgIGNvbnZlcmdlZCA9IGVycm9yIDw9IGVycm9yVG9sZXJhbmNlO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwYXJhbWV0ZXJWYWx1ZXM6IHBhcmFtZXRlcnMsXG4gICAgcGFyYW1ldGVyRXJyb3I6IGVycm9yLFxuICAgIGl0ZXJhdGlvbnM6IGl0ZXJhdGlvbixcbiAgfTtcbn1cbiIsIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCB7IFRTTkUgfSBmcm9tICdAa2Vja2VsdC90c25lJztcbmltcG9ydCB7IFZlY3RvciwgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy90eXBlLWRlY2xhcmF0aW9ucyc7XG5pbXBvcnQgeyB0cmFuc3Bvc2VNYXRyaXgsIGFzc2VydCwgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBTUEVCYXNlLCBQU1BFQmFzZSwgT3JpZ2luYWxTUEUgfSBmcm9tICcuL3NwZSc7XG5pbXBvcnQgeyBNZWFzdXJlLCBBdmFpbGFibGVNZXRyaWNzLCBpc0JpdEFycmF5TWV0cmljIH0gZnJvbSAnLi90eXBlZC1tZXRyaWNzL3R5cGVkLW1ldHJpY3MnO1xuaW1wb3J0IEJpdEFycmF5IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2JpdC1hcnJheSc7XG5pbXBvcnQgeyBVTUFQIH0gZnJvbSAnLi91bWFwJztcbmltcG9ydCB7IERpc3RhbmNlTWF0cml4LCBEaXN0YW5jZU1hdHJpeFNlcnZpY2UsIGRpc3RhbmNlTWF0cml4UHJveHksIGRtTGluZWFySW5kZXggfSBmcm9tICcuL2Rpc3RhbmNlLW1hdHJpeCc7XG5pbXBvcnQgeyBTcGFyc2VNYXRyaXhTZXJ2aWNlIH0gZnJvbSAnLi9kaXN0YW5jZS1tYXRyaXgvc3BhcnNlLW1hdHJpeC1zZXJ2aWNlJztcbmltcG9ydCB7IGdldEtubkdyYXBoLCBnZXRLbm5HcmFwaEZyb21ETSB9IGZyb20gJy4vdW1hcC9rbm5HcmFwaCc7XG5leHBvcnQgdmFyIERpbVJlZHVjdGlvbk1ldGhvZHM7XG4oZnVuY3Rpb24gKERpbVJlZHVjdGlvbk1ldGhvZHMpIHtcbiAgICBEaW1SZWR1Y3Rpb25NZXRob2RzW1wiVU1BUFwiXSA9IFwiVU1BUFwiO1xuICAgIERpbVJlZHVjdGlvbk1ldGhvZHNbXCJUX1NORVwiXSA9IFwidC1TTkVcIjtcbn0pKERpbVJlZHVjdGlvbk1ldGhvZHMgfHwgKERpbVJlZHVjdGlvbk1ldGhvZHMgPSB7fSkpO1xuLyoqIFVtYXAgdXNlcyBwcmVjYWxjdWxhdGVkIGRpc3RhbmNlIG1hdHJpeCB0byBzYXZlIHRpbWUuIHRob3VnaCBmb3IgdG9vIG11Y2ggZGF0YSwgbWVtb3J5IGJlY29tZXMgY29uc3RyYWludC5cbiAqIGlmIHdlIGhhdmUgMTAwIDAwMCByb3dzLCBkaXN0YW5jZSBtYXRyaXggd2lsbCB0YWtlIH4xMGdiIG9mIG1lbW9yeSBhbmQgcHJvYmFibHkgb3ZlcmZsb3cuXG4gKi9cbmV4cG9ydCBjb25zdCBNQVhfRElTVEFOQ0VfTUFUUklYX1JPV1MgPSAyMDAwMDtcbmV4cG9ydCBjbGFzcyBVTUFQT3B0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubGVhcm5pbmdSYXRlID0geyB1aU5hbWU6ICdMZWFyaW5pZyByYXRlJywgdmFsdWU6IDEsIHRvb2x0aXA6ICdUaGUgaW5pdGlhbCBsZWFybmluZyByYXRlIGZvciB0aGUgZW1iZWRkaW5nIG9wdGltaXphdGlvbicgfTtcbiAgICAgICAgdGhpcy5uQ29tcG9uZW50cyA9IHsgdWlOYW1lOiAnQ29tcG9uZW50cycsIHZhbHVlOiAyLCB0b29sdGlwOiAnVGhlIG51bWJlciBvZiBjb21wb25lbnRzIChkaW1lbnNpb25zKSB0byBwcm9qZWN0IHRoZSBkYXRhIHRvJyB9O1xuICAgICAgICB0aGlzLm5FcG9jaHMgPSB7IHVpTmFtZTogJ0Vwb2NocycsIHZhbHVlOiAwLCB0b29sdGlwOiAnVGhlIG51bWJlciBvZiBlcG9jaHMgdG8gb3B0aW1pemUgZW1iZWRkaW5ncyB2aWEgU0dELiBDb21wdXRlZCBhdXRvbWF0aWNhbGx5IGlmIHNldCB0byAwJyB9O1xuICAgICAgICB0aGlzLm5OZWlnaGJvcnMgPSB7IHVpTmFtZTogJ05laWdoYm9ycycsIHZhbHVlOiAxNSwgdG9vbHRpcDogJ1RoZSBudW1iZXIgb2YgbmVhcmVzdCBuZWlnaGJvcnMgdG8gY29uc3RydWN0IHRoZSBmdXp6eSBtYW5pZm9sZCcgfTtcbiAgICAgICAgdGhpcy5zcHJlYWQgPSB7IHVpTmFtZTogJ1NwcmVhZCcsIHZhbHVlOiAxLCB0b29sdGlwOiAnVGhlIGVmZmVjdGl2ZSBzY2FsZSBvZiBlbWJlZGRlZCBwb2ludHMsIHVzZWQgd2l0aCBtaW4gZGlzdGFuY2UgdG8gY29udHJvbCB0aGUgY2x1bXBlZC9kaXNwZXJzZWQgbmF0dXJlIG9mIHRoZSBlbWJlZGRpbmcnIH07XG4gICAgICAgIHRoaXMubWluRGlzdCA9IHsgdWlOYW1lOiAnTWluIGRpc3RhbmNlJywgdmFsdWU6IDAuMSwgdG9vbHRpcDogJ1RoZSBlZmZlY3RpdmUgbWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIGVtYmVkZGVkIHBvaW50cywgdXNlZCB3aXRoIHNwcmVhZCB0byBjb250cm9sIHRoZSBjbHVtcGVkL2Rpc3BlcnNlZCBuYXR1cmUgb2YgdGhlIGVtYmVkZGluZycgfTtcbiAgICB9XG4gICAgO1xufVxuZXhwb3J0IGNsYXNzIFRTTkVPcHRpb25zIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lcHNpbG9uID0geyB1aU5hbWU6ICdFcHNpbG9uJywgdmFsdWU6IDEwLCB0b29sdGlwOiAnRXBzaWxvbiBpcyBsZWFybmluZyByYXRlJyB9O1xuICAgICAgICB0aGlzLnBlcnBsZXhpdHkgPSB7IHVpTmFtZTogJ1BlcnBsZXhpdHknLCB2YWx1ZTogMzAsIHRvb2x0aXA6ICdSb3VnaGx5IGhvdyBtYW55IG5laWdoYm9ycyBlYWNoIHBvaW50IGluZmx1ZW5jZXMnIH07XG4gICAgICAgIHRoaXMuZGltID0geyB1aU5hbWU6ICdEaW1lbnNpb25hbGl0eScsIHZhbHVlOiAyLCB0b29sdGlwOiAnRGltZW5zaW9uYWxpdHkgb2YgdGhlIGVtYmVkZGluZycgfTtcbiAgICB9XG4gICAgO1xufVxuLyoqIEFic3RyYWN0IGRpbWVuc2lvbmFsaXR5IHJlZHVjZXIgKi9cbmNsYXNzIFJlZHVjZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgIH1cbn1cbi8qKiB0LVNORSBkaW1lbnNpb25hbGl0eSByZWR1Y3Rpb24uICovXG5jbGFzcyBUU05FUmVkdWNlciBleHRlbmRzIFJlZHVjZXIge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgVFNORVJlZHVjZXIuXG4gICAgICogQHBhcmFtIHtPcHRpb25zfSBvcHRpb25zIE9wdGlvbnMgdG8gcGFzcyB0byB0aGUgY29uc3RydWN0b3IuXG4gICAgICogQG1lbWJlcm9mIFRTTkVSZWR1Y2VyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5yZWR1Y2VyID0gbmV3IFRTTkUob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuaXRlcmF0aW9ucyA9IG9wdGlvbnM/Lml0ZXJhdGlvbnMgPz8gMTAwO1xuICAgICAgICB0aGlzLmRpc3RhbmNlRm5hbWUgPSBvcHRpb25zLmRpc3RhbmNlRm5hbWU7XG4gICAgICAgIHRoaXMuZGlzdGFuY2VGbiA9IG9wdGlvbnMuZGlzdGFuY2VGbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW1iZWRzIHRoZSBkYXRhIGdpdmVuIGludG8gdGhlIHR3by1kaW1lbnNpb25hbCBzcGFjZSB1c2luZyB0LVNORSBtZXRob2QuXFxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtwYXJhbGxlbERpc3RhbmNlV29ya2Vyc10gV2hldGhlciB0byB1c2UgcGFyYWxsZWwgZGlzdGFuY2Ugd29ya2Vycy5cbiAgICAgKiBAcmV0dXJuIHthbnl9IENhcnRlc2lhbiBjb29yZGluYXRlIG9mIHRoaXMgZW1iZWRkaW5nIGFuZCBkaXN0YW5jZSBtYXRyaXggd2hlcmUgYXBwbGljYWJsZS5cbiAgICAgKi9cbiAgICBhc3luYyB0cmFuc2Zvcm0ocGFyYWxsZWxEaXN0YW5jZVdvcmtlcnMpIHtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBwYXJhbGxlbERpc3RhbmNlV29ya2VycyA/IGF3YWl0IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRyaXhTZXJ2aWNlID0gbmV3IERpc3RhbmNlTWF0cml4U2VydmljZSh0cnVlLCBmYWxzZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3QgPSBhd2FpdCBtYXRyaXhTZXJ2aWNlLmNhbGModGhpcy5kYXRhLCB0aGlzLmRpc3RhbmNlRm5hbWUpO1xuICAgICAgICAgICAgICAgIG1hdHJpeFNlcnZpY2UudGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIG1hdHJpeFNlcnZpY2UudGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkoKSA6XG4gICAgICAgICAgICAoKCkgPT4geyBjb25zdCByZXQgPSBEaXN0YW5jZU1hdHJpeC5jYWxjKHRoaXMuZGF0YSwgKGEsIGIpID0+IHRoaXMuZGlzdGFuY2VGbihhLCBiKSk7IHJldC5ub3JtYWxpemUoKTsgcmV0dXJuIHJldC5kYXRhOyB9KSgpO1xuICAgICAgICBjb25zdCBtYXRyaXhQcm94eSA9IGRpc3RhbmNlTWF0cml4UHJveHkoZGlzdGFuY2UsIHRoaXMuZGF0YS5sZW5ndGgpO1xuICAgICAgICB0aGlzLnJlZHVjZXIuaW5pdERhdGFEaXN0KG1hdHJpeFByb3h5KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLml0ZXJhdGlvbnM7ICsraSlcbiAgICAgICAgICAgIHRoaXMucmVkdWNlci5zdGVwKCk7IC8vIGV2ZXJ5IHRpbWUgeW91IGNhbGwgdGhpcywgc29sdXRpb24gZ2V0cyBiZXR0ZXJcbiAgICAgICAgcmV0dXJuIHsgZGlzdGFuY2U6IGRpc3RhbmNlLCBlbWJlZGRpbmc6IHRoaXMucmVkdWNlci5nZXRTb2x1dGlvbigpIH07XG4gICAgfVxufVxuLyoqXG4gKiBJbXBsZW1lbnRzIFVNQVAgZGltZW5zaW9uYWxpdHkgcmVkdWN0aW9uLlxuICpcbiAqIEBjbGFzcyBVTUFQUmVkdWNlclxuICogQGV4dGVuZHMge1JlZHVjZXJ9XG4gKi9cbmNsYXNzIFVNQVBSZWR1Y2VyIGV4dGVuZHMgUmVkdWNlciB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBVTUFQUmVkdWNlci5cbiAgICAgKiBAcGFyYW0ge09wdGlvbnN9IG9wdGlvbnMgT3B0aW9ucyB0byBwYXNzIHRvIHRoZSBjb25zdHJ1Y3Rvci5cbiAgICAgKiBAbWVtYmVyb2YgVU1BUFJlZHVjZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBhc3NlcnQoJ2Rpc3RhbmNlRm5hbWUnIGluIG9wdGlvbnMpO1xuICAgICAgICBhc3NlcnQoJ2Rpc3RhbmNlRm4nIGluIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmRpc3RhbmNlRm5BcmdzID0gb3B0aW9ucz8uZGlzdGFuY2VGbkFyZ3M7XG4gICAgICAgIHRoaXMuZGlzdGFuY2VGbiA9IG9wdGlvbnMuZGlzdGFuY2VGbjtcbiAgICAgICAgdGhpcy51c2luZ1NwYXJzZU1hdHJpeCA9ICEhb3B0aW9ucy51c2luZ1NwYXJzZU1hdHJpeCB8fCAhIW9wdGlvbnMuc3BhcnNlTWF0cml4O1xuICAgICAgICB0aGlzLnNwYXJzZU1hdHJpeFRocmVzaG9sZCA9IG9wdGlvbnMuc3BhcnNlTWF0cml4VGhyZXNob2xkID8/IDAuODtcbiAgICAgICAgdGhpcy50cmFuc2ZlcmVkU3BhcnNlTWF0cml4ID0gb3B0aW9ucy5zcGFyc2VNYXRyaXg7XG4gICAgICAgIHRoaXMucHJvZ3Jlc3NGdW5jID0gb3B0aW9ucy5wcm9ncmVzc0Z1bmM7XG4gICAgICAgIHRoaXMuZGlzdGFuY2VGbmFtZSA9IG9wdGlvbnMuZGlzdGFuY2VGbmFtZTtcbiAgICAgICAgdGhpcy5kbUluZGV4RnVuYyA9IGRtTGluZWFySW5kZXgodGhpcy5kYXRhLmxlbmd0aCk7XG4gICAgICAgIC8vVW1hcCB1c2VzIHZlY3RvciBpbmRleGluZywgc28gd2UgbmVlZCB0byBjcmVhdGUgYW4gYXJyYXkgb2YgdmVjdG9ycyBhcyBpbmRlY2VzLlxuICAgICAgICB0aGlzLnZlY3RvcnMgPSBuZXcgQXJyYXkodGhpcy5kYXRhLmxlbmd0aCkuZmlsbCgwKS5tYXAoKF8sIGkpID0+IGkpO1xuICAgICAgICB0aGlzLnVzaW5nRGlzdGFuY2VNYXRyaXggPSAhKCghb3B0aW9ucy5wcmVDYWxjdWxhdGVEaXN0YW5jZU1hdHJpeCAmJiB0aGlzLmRhdGEubGVuZ3RoID4gTUFYX0RJU1RBTkNFX01BVFJJWF9ST1dTKVxuICAgICAgICAgICAgfHwgdGhpcy51c2luZ1NwYXJzZU1hdHJpeCk7XG4gICAgICAgIGlmICh0aGlzLnVzaW5nRGlzdGFuY2VNYXRyaXgpXG4gICAgICAgICAgICBvcHRpb25zLmRpc3RhbmNlRm4gPSB0aGlzLl9lbmNvZGVkRGlzdGFuY2VNYXRyaXguYmluZCh0aGlzKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy51c2luZ1NwYXJzZU1hdHJpeClcbiAgICAgICAgICAgIG9wdGlvbnMuZGlzdGFuY2VGbiA9IHRoaXMuX2VuY29kZWRTcGFyc2VNYXRyaXguYmluZCh0aGlzKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgb3B0aW9ucy5kaXN0YW5jZUZuID0gdGhpcy5fZW5jb2RlZERpc3RhbmNlLmJpbmQodGhpcyk7XG4gICAgICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoIDwgMTUpXG4gICAgICAgICAgICBvcHRpb25zLm5OZWlnaGJvcnMgPSB0aGlzLmRhdGEubGVuZ3RoIC0gMTtcbiAgICAgICAgdGhpcy5yZWR1Y2VyID0gbmV3IFVNQVAob3B0aW9ucyk7XG4gICAgICAgIC8vIHRoaXMucmVkdWNlci5kaXN0YW5jZUZuID0gdGhpcy5fZW5jb2RlZERpc3RhbmNlLmJpbmQodGhpcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBkaXN0YW5jZSB3cmFwcGVyIHRvIGhhdmUgbnVtZXJpYyBpbnB1dHMgaW5zdGVhZCBvZiBzdHJpbmcgb25lcy5cbiAgICAgKlxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKiBAcGFyYW0ge251bWJlcltdfSBhIFRoZSBmaXJzdCBpdGVtLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyW119IGIgVGhlIGZpcnN0IGl0ZW0uXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBEaXN0YW5jZSBtZXRyaWMuXG4gICAgICogQG1lbWJlcm9mIFVNQVBSZWR1Y2VyXG4gICAgICovXG4gICAgX2VuY29kZWREaXN0YW5jZU1hdHJpeChhLCBiKSB7XG4gICAgICAgIGlmIChhID09PSBiKVxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIGlmIChhID4gYilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc3RhbmNlTWF0cml4W3RoaXMuZG1JbmRleEZ1bmMoYiwgYSldO1xuICAgICAgICByZXR1cm4gdGhpcy5kaXN0YW5jZU1hdHJpeFt0aGlzLmRtSW5kZXhGdW5jKGEsIGIpXTtcbiAgICB9XG4gICAgX2VuY29kZWRTcGFyc2VNYXRyaXgoYSwgYikge1xuICAgICAgICByZXR1cm4gdGhpcy5zcGFyc2VNYXRyaXguZ2V0KGEpPy5nZXQoYikgPz8gdGhpcy5zcGFyc2VNYXRyaXguZ2V0KGIpPy5nZXQoYSkgPz8gMTtcbiAgICB9XG4gICAgX2VuY29kZWREaXN0YW5jZShhLCBiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3RhbmNlRm4odGhpcy5kYXRhW2FdLCB0aGlzLmRhdGFbYl0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbWJlZHMgdGhlIGRhdGEgZ2l2ZW4gaW50byB0aGUgdHdvLWRpbWVuc2lvbmFsIHNwYWNlIHVzaW5nIFVNQVAgbWV0aG9kLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3BhcmFsbGVsRGlzdGFuY2VXb3JrZXJzXSBXaGV0aGVyIHRvIHVzZSBwYXJhbGxlbCBkaXN0YW5jZSBtYXRyaXggd29ya2Vycy5cbiAgICAgKiBAcmV0dXJuIHthbnl9IENhcnRlc2lhbiBjb29yZGluYXRlIG9mIHRoaXMgZW1iZWRkaW5nLlxuICAgICAqL1xuICAgIGFzeW5jIHRyYW5zZm9ybShwYXJhbGxlbERpc3RhbmNlV29ya2Vycykge1xuICAgICAgICBpZiAodGhpcy51c2luZ0Rpc3RhbmNlTWF0cml4KSB7XG4gICAgICAgICAgICB0aGlzLmRpc3RhbmNlTWF0cml4ID0gcGFyYWxsZWxEaXN0YW5jZVdvcmtlcnMgPyBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdHJpeFNlcnZpY2UgPSBuZXcgRGlzdGFuY2VNYXRyaXhTZXJ2aWNlKHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0ID0gYXdhaXQgbWF0cml4U2VydmljZS5jYWxjKHRoaXMuZGF0YSwgdGhpcy5kaXN0YW5jZUZuYW1lLCBmYWxzZSwgdGhpcy5kaXN0YW5jZUZuQXJncyk7XG4gICAgICAgICAgICAgICAgICAgIG1hdHJpeFNlcnZpY2UudGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkaXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBtYXRyaXhTZXJ2aWNlLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCkgOlxuICAgICAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldCA9IERpc3RhbmNlTWF0cml4LmNhbGModGhpcy5kYXRhLCAoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IHRoaXMuZGlzdGFuY2VGbihhLCBiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldC5kYXRhO1xuICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5kaXN0YW5jZU1hdHJpeCAmJiAhaXNCaXRBcnJheU1ldHJpYyh0aGlzLmRpc3RhbmNlRm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga25uUmVzID0gZ2V0S25uR3JhcGhGcm9tRE0odGhpcy5kaXN0YW5jZU1hdHJpeCwgdGhpcy5yZWR1Y2VyLm5laWdoYm9ycywgdGhpcy5kYXRhLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWR1Y2VyLnNldFByZWNvbXB1dGVkS05OKGtublJlcy5rbm5JbmRleGVzLCBrbm5SZXMua25uRGlzdGFuY2VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnVzaW5nU3BhcnNlTWF0cml4KSB7XG4gICAgICAgICAgICBjb25zb2xlLnRpbWUoJ3NwYXJzZSBtYXRyaXgnKTtcbiAgICAgICAgICAgIGxldCByZXMgPSB0aGlzLnRyYW5zZmVyZWRTcGFyc2VNYXRyaXggPz9cbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgU3BhcnNlTWF0cml4U2VydmljZSgpLmNhbGModGhpcy5kYXRhLCB0aGlzLmRpc3RhbmNlRm5hbWUsIHRoaXMuc3BhcnNlTWF0cml4VGhyZXNob2xkLCB0aGlzLmRpc3RhbmNlRm5BcmdzKTtcbiAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgnc3BhcnNlIG1hdHJpeCcpO1xuICAgICAgICAgICAgaWYgKCFpc0JpdEFycmF5TWV0cmljKHRoaXMuZGlzdGFuY2VGbmFtZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrbm5SZXMgPSBnZXRLbm5HcmFwaChyZXMuaSwgcmVzLmosIHJlcy5kaXN0YW5jZSwgdGhpcy5yZWR1Y2VyLm5laWdoYm9ycywgdGhpcy5kYXRhLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWR1Y2VyLnNldFByZWNvbXB1dGVkS05OKGtublJlcy5rbm5JbmRleGVzLCBrbm5SZXMua25uRGlzdGFuY2VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUudGltZSgnc3BhcnNlIG1hdHJpeCB0byBtYXAnKTtcbiAgICAgICAgICAgIHRoaXMuc3BhcnNlTWF0cml4ID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuaS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0ID0gcmVzLmlbaV07XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kID0gcmVzLmpbaV07XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSByZXMuZGlzdGFuY2VbaV07XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNwYXJzZU1hdHJpeC5oYXMoZmlyc3QpKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwYXJzZU1hdHJpeC5zZXQoZmlyc3QsIG5ldyBNYXAoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGFyc2VNYXRyaXguZ2V0KGZpcnN0KS5zZXQoc2Vjb25kLCBkaXN0YW5jZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zb2xlLnRpbWVFbmQoJ3NwYXJzZSBtYXRyaXggdG8gbWFwJyk7XG4gICAgICAgICAgICByZXMuZGlzdGFuY2UgPSBudWxsO1xuICAgICAgICAgICAgcmVzLmkgPSBudWxsO1xuICAgICAgICAgICAgcmVzLmogPSBudWxsO1xuICAgICAgICAgICAgcmVzID0gbnVsbDtcbiAgICAgICAgICAgIC8vIG5lZWRlZCBzbyB0aGF0IGdhcmJhZ2UgY29sbGVjdG9yIGNhbiBmcmVlIG1lbW9yeSBmcm9tIGRpc3RhbmNlIG1hdHJpeFxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbWJlZGRpbmcgPSBhd2FpdCB0aGlzLnJlZHVjZXIuZml0QXN5bmModGhpcy52ZWN0b3JzLCAoZXBvYykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvZ3Jlc3NGdW5jKVxuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3NGdW5jKGVwb2MsIHRoaXMucmVkdWNlci5nZXRORXBvY2hzKCksIHRoaXMucmVkdWNlci5nZXRFbWJlZGRpbmcoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBhcnJheUNhc3QyQ29vcmRpbmF0ZXMoZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBcnJheShkYXRhLmxlbmd0aCkuZmlsbCgwKS5tYXAoKF8sIGkpID0+IChWZWN0b3IuZnJvbShkYXRhW2ldKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGVtYmVkZGluZzogYXJyYXlDYXN0MkNvb3JkaW5hdGVzKGVtYmVkZGluZyksIC4uLih0aGlzLmRpc3RhbmNlTWF0cml4ID8geyBkaXN0YW5jZTogdGhpcy5kaXN0YW5jZU1hdHJpeCB9IDoge30pIH07XG4gICAgfVxufVxuLyoqXG4gKiBJbXBsZW1lbnRzIG9yaWdpbmFsIFNQRSBkaW1lbnNpb25hbGl0eSByZWR1Y3Rpb24uXG4gKlxuICogQGNsYXNzIFNQRVJlZHVjZXJcbiAqIEBleHRlbmRzIHtSZWR1Y2VyfVxuICovXG5jbGFzcyBTUEVSZWR1Y2VyIGV4dGVuZHMgUmVkdWNlciB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBTUEVSZWR1Y2VyLlxuICAgICAqIEBwYXJhbSB7T3B0aW9uc30gb3B0aW9ucyBPcHRpb25zIHRvIHBhc3MgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAqIEBtZW1iZXJvZiBTUEVSZWR1Y2VyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5yZWR1Y2VyID0gbmV3IFNQRUJhc2Uob3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVtYmVkcyB0aGUgZGF0YSBnaXZlbiBpbnRvIHRoZSB0d28tZGltZW5zaW9uYWwgc3BhY2UgdXNpbmcgdGhlIG9yaWdpbmFsIFNQRSBtZXRob2QuXG4gICAgICogQHJldHVybiB7YW55fSBDYXJ0ZXNpYW4gY29vcmRpbmF0ZSBvZiB0aGlzIGVtYmVkZGluZyBhbmQgZGlzdGFuY2UgbWF0cml4IHdoZXJlIGFwcGxpY2FibGUuXG4gICAgICovXG4gICAgYXN5bmMgdHJhbnNmb3JtKCkge1xuICAgICAgICBjb25zdCBlbWIgPSBhd2FpdCB0aGlzLnJlZHVjZXIuZW1iZWQodGhpcy5kYXRhKTtcbiAgICAgICAgcmV0dXJuIHsgZGlzdGFuY2U6IHRoaXMucmVkdWNlci5kaXN0YW5jZSwgZW1iZWRkaW5nOiBlbWIgfTtcbiAgICB9XG59XG4vKipcbiAqIEltcGxlbWVudHMgbW9kaWZpZWQgU1BFIGRpbWVuc2lvbmFsaXR5IHJlZHVjdGlvbi5cbiAqXG4gKiBAY2xhc3MgUFNQRVJlZHVjZXJcbiAqIEBleHRlbmRzIHtSZWR1Y2VyfVxuICovXG5jbGFzcyBQU1BFUmVkdWNlciBleHRlbmRzIFJlZHVjZXIge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgUFNQRVJlZHVjZXIuXG4gICAgICogQHBhcmFtIHtPcHRpb25zfSBvcHRpb25zIE9wdGlvbnMgdG8gcGFzcyB0byB0aGUgY29uc3RydWN0b3IuXG4gICAgICogQG1lbWJlcm9mIFBTUEVSZWR1Y2VyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5yZWR1Y2VyID0gbmV3IFBTUEVCYXNlKG9wdGlvbnMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbWJlZHMgdGhlIGRhdGEgZ2l2ZW4gaW50byB0aGUgdHdvLWRpbWVuc2lvbmFsIHNwYWNlIHVzaW5nIHRoZSBtb2RpZmllZCBTUEUgbWV0aG9kLlxuICAgICAqIEByZXR1cm4ge2FueX0gQ2FydGVzaWFuIGNvb3JkaW5hdGUgb2YgdGhpcyBlbWJlZGRpbmcgYW5kIGRpc3RhbmNlIG1hdHJpeCB3aGVyZSBhcHBsaWNhYmxlLlxuICAgICAqL1xuICAgIGFzeW5jIHRyYW5zZm9ybSgpIHtcbiAgICAgICAgY29uc3QgZW1iID0gYXdhaXQgdGhpcy5yZWR1Y2VyLmVtYmVkKHRoaXMuZGF0YSk7XG4gICAgICAgIHJldHVybiB7IGRpc3RhbmNlOiB0aGlzLnJlZHVjZXIuZGlzdGFuY2UsIGVtYmVkZGluZzogZW1iIH07XG4gICAgfVxufVxuLyoqXG4gKiBJbXBsZW1lbnRzIG9yaWdpbmFsIFNQRSBkaW1lbnNpb25hbGl0eSByZWR1Y3Rpb24uXG4gKlxuICogQGNsYXNzIE9yaWdpbmFsU1BFUmVkdWNlclxuICogQGV4dGVuZHMge1JlZHVjZXJ9XG4gKi9cbmNsYXNzIE9yaWdpbmFsU1BFUmVkdWNlciBleHRlbmRzIFJlZHVjZXIge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgT3JpZ2luYWxTUEVSZWR1Y2VyLlxuICAgICAqIEBwYXJhbSB7T3B0aW9uc30gb3B0aW9ucyBPcHRpb25zIHRvIHBhc3MgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAqIEBtZW1iZXJvZiBPcmlnaW5hbFNQRVJlZHVjZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnJlZHVjZXIgPSBuZXcgT3JpZ2luYWxTUEUob3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVtYmVkcyB0aGUgZGF0YSBnaXZlbiBpbnRvIHRoZSB0d28tZGltZW5zaW9uYWwgc3BhY2UgdXNpbmcgdGhlIG9yaWdpbmFsIFNQRSBtZXRob2QuXG4gICAgICogQHJldHVybiB7YW55fSBDYXJ0ZXNpYW4gY29vcmRpbmF0ZSBvZiB0aGlzIGVtYmVkZGluZyBhbmQgZGlzdGFuY2UgbWF0cml4IHdoZXJlIGFwcGxpY2FibGUuXG4gICAgICovXG4gICAgYXN5bmMgdHJhbnNmb3JtKCkge1xuICAgICAgICBjb25zdCBlbWIgPSBhd2FpdCB0aGlzLnJlZHVjZXIuZW1iZWQodGhpcy5kYXRhKTtcbiAgICAgICAgcmV0dXJuIHsgZGlzdGFuY2U6IHRoaXMucmVkdWNlci5kaXN0YW5jZSwgZW1iZWRkaW5nOiBlbWIgfTtcbiAgICB9XG59XG5jb25zdCBBdmFpbGFibGVSZWR1Y2VycyA9IHtcbiAgICAnVU1BUCc6IFVNQVBSZWR1Y2VyLFxuICAgICd0LVNORSc6IFRTTkVSZWR1Y2VyLFxuICAgICdTUEUnOiBTUEVSZWR1Y2VyLFxuICAgICdwU1BFJzogUFNQRVJlZHVjZXIsXG4gICAgJ09yaWdpbmFsU1BFJzogT3JpZ2luYWxTUEVSZWR1Y2VyLFxufTtcbi8qKlxuICogVW5pZmllZCBjbGFzcyBpbXBsZW1lbnRpbmcgZGlmZmVyZW50IGRpbWVuc2lvbmFsaXR5IHJlZHVjdGlvbiBtZXRob2RzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEaW1lbnNpb25hbGl0eVJlZHVjZXJcbiAqL1xuZXhwb3J0IGNsYXNzIERpbWVuc2lvbmFsaXR5UmVkdWNlciB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBEaW1lbnNpb25hbGl0eVJlZHVjZXIuXG4gICAgICogQHBhcmFtIHthbnlbXX0gZGF0YSBWZWN0b3JzIHRvIGVtYmVkLlxuICAgICAqIEBwYXJhbSB7S25vd25NZXRob2RzfSBtZXRob2QgRW1iZWRkaW5nIG1ldGhvZCB0byBiZSBhcHBsaWVkXG4gICAgICogQHBhcmFtIHtLbm93bk1ldHJpY3N9IG1ldHJpYyBEaXN0YW5jZSBtZXRyaWMgdG8gYmUgY29tcHV0ZWQgYmV0d2VlbiBlYWNoIG9mIHRoZSB2ZWN0b3JzLlxuICAgICAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdIE9wdGlvbnMgdG8gcGFzcyB0byB0aGUgaW1wbGVtZW50aW5nIGVtYmVkZGVycy5cbiAgICAgKiBAbWVtYmVyb2YgRGltZW5zaW9uYWxpdHlSZWR1Y2VyXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZGF0YSwgbWV0aG9kLCBtZXRyaWMsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgbWVhc3VyZSA9IG5ldyBNZWFzdXJlKG1ldHJpYykuZ2V0TWVhc3VyZShvcHRpb25zPy5kaXN0YW5jZUZuQXJncyk7XG4gICAgICAgIGxldCBzcGVjT3B0aW9ucyA9IHt9O1xuICAgICAgICBpZiAoaXNCaXRBcnJheU1ldHJpYyhtZXRyaWMpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgICAgICAgICAgZGF0YVtpXSA9IG5ldyBCaXRBcnJheShkYXRhW2ldLl9kYXRhLCBkYXRhW2ldLl9sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRob2QgPT0gJ1VNQVAnKSB7XG4gICAgICAgICAgICBzcGVjT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi57IGRhdGE6IGRhdGEgfSxcbiAgICAgICAgICAgICAgICAuLi57IGRpc3RhbmNlRm46IG1lYXN1cmUgfSxcbiAgICAgICAgICAgICAgICAuLi57IGRpc3RhbmNlRm5hbWU6IG1ldHJpYyB9LFxuICAgICAgICAgICAgICAgIC4uLnsgbkVwb2Noczogb3B0aW9ucz8uY3ljbGVzIH0sXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobWV0aG9kID09ICd0LVNORScpIHtcbiAgICAgICAgICAgIHNwZWNPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLnsgZGF0YTogZGF0YSB9LFxuICAgICAgICAgICAgICAgIC4uLnsgZGlzdGFuY2VGbjogbWVhc3VyZSB9LFxuICAgICAgICAgICAgICAgIC4uLnsgZGlzdGFuY2VGbmFtZTogbWV0cmljIH0sXG4gICAgICAgICAgICAgICAgLi4ueyBpdGVyYXRpb25zOiBvcHRpb25zPy5jeWNsZXMgPz8gdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobWV0aG9kID09ICdTUEUnKSB7XG4gICAgICAgICAgICBzcGVjT3B0aW9ucyA9IHsgLi4ueyBkYXRhOiBkYXRhIH0sIC4uLnsgZGlzdGFuY2U6IG1lYXN1cmUgfSwgZGlzdGFuY2VGdW5jdGlvbk5hbWU6IG1ldHJpYywgLi4ub3B0aW9ucyB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc3BlY09wdGlvbnMgPSB7IC4uLnsgZGF0YTogZGF0YSB9LCAuLi57IGRpc3RhbmNlOiBtZWFzdXJlIH0sIGRpc3RhbmNlRnVuY3Rpb25OYW1lOiBtZXRyaWMsIC4uLm9wdGlvbnMgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZHVjZXIgPSBuZXcgQXZhaWxhYmxlUmVkdWNlcnNbbWV0aG9kXShzcGVjT3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVtYmVkcyB0aGUgZGF0YSBnaXZlbiBpbnRvIHRoZSB0d28tZGltZW5zaW9uYWwgc3BhY2UgdXNpbmcgdGhlIGNob3NlbiBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHRyYW5zcG9zZSBXaGV0aGVyIHRvIHRyYW5zZm9ybSBjb29yZGluYXRlcyB0byBoYXZlIGNvbHVtbnMtZmlyc3Qgb3JpZW50YXRpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBwYXJhbGxlbERpc3RhbmNlV29ya2VycyBXaGV0aGVyIHRvIHVzZSBwYXJhbGxlbCBkaXN0YW5jZSBjb21wdXRhdGlvbi5cbiAgICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGVtYmVkZGluZyBtZXRob2Qgd2FzIG5vdCBmb3VuZC5cbiAgICAgKiBAcmV0dXJuIHthbnl9IENhcnRlc2lhbiBjb29yZGluYXRlIG9mIHRoaXMgZW1iZWRkaW5nIGFuZCBkaXN0YW5jZSBtYXRyaXggd2hlcmUgYXBwbGljYWJsZS5cbiAgICAgKiBAbWVtYmVyb2YgRGltZW5zaW9uYWxpdHlSZWR1Y2VyXG4gICAgICovXG4gICAgYXN5bmMgdHJhbnNmb3JtKHRyYW5zcG9zZSA9IGZhbHNlLCBwYXJhbGxlbERpc3RhbmNlV29ya2Vycykge1xuICAgICAgICBpZiAodGhpcy5yZWR1Y2VyID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZHVjZXIgd2FzIG5vdCBkZWZpbmVkLicpO1xuICAgICAgICBsZXQgeyBlbWJlZGRpbmcsIGRpc3RhbmNlIH0gPSBhd2FpdCB0aGlzLnJlZHVjZXIudHJhbnNmb3JtKHBhcmFsbGVsRGlzdGFuY2VXb3JrZXJzKTtcbiAgICAgICAgaWYgKHRyYW5zcG9zZSlcbiAgICAgICAgICAgIGVtYmVkZGluZyA9IHRyYW5zcG9zZU1hdHJpeChlbWJlZGRpbmcpO1xuICAgICAgICByZXR1cm4geyBkaXN0YW5jZTogZGlzdGFuY2UsIGVtYmVkZGluZzogZW1iZWRkaW5nIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgbWV0cmljcyBhdmFpbGFibGUgYnkgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QXZhaWxhYmxlRGF0YVR5cGVzfSB0eXBlTmFtZSB0eXBlIG5hbWVcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gTWV0cmljIG5hbWVzIHdoaWNoIGV4cGVjdHMgdGhlIGdpdmVuIGRhdGEgdHlwZVxuICAgICAqIEBtZW1iZXJvZiBEaW1lbnNpb25hbGl0eVJlZHVjZXJcbiAgICAgKi9cbiAgICBzdGF0aWMgYXZhaWxhYmxlTWV0cmljc0J5VHlwZSh0eXBlTmFtZSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljc1t0eXBlTmFtZV0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGRpbWVuc2lvbmFsaXR5IHJlZHVjdGlvbiBtZXRob2RzIGF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEBtZW1iZXJvZiBEaW1lbnNpb25hbGl0eVJlZHVjZXJcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0IGF2YWlsYWJsZU1ldGhvZHMoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhBdmFpbGFibGVSZWR1Y2Vycyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgbWV0cmljcyBhdmFpbGFibGUuXG4gICAgICpcbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKiBAbWVtYmVyb2YgRGltZW5zaW9uYWxpdHlSZWR1Y2VyXG4gICAgICovXG4gICAgc3RhdGljIGdldCBhdmFpbGFibGVNZXRyaWNzKCkge1xuICAgICAgICBsZXQgYW5zID0gW107XG4gICAgICAgIE9iamVjdC52YWx1ZXMoQXZhaWxhYmxlTWV0cmljcykuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcnJheSA9IE9iamVjdC52YWx1ZXMob2JqKTtcbiAgICAgICAgICAgIGFucyA9IFsuLi5hbnMsIC4uLmFycmF5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhbnM7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY21Wa2RXTmxMV1JwYldWdWMybHZibUZzYVhSNUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpY21Wa2RXTmxMV1JwYldWdWMybHZibUZzYVhSNUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTERSQ1FVRTBRanRCUVVNMVFpeFBRVUZQTEVWQlFVTXNTVUZCU1N4RlFVRkRMRTFCUVUwc1pVRkJaU3hEUVVGRE8wRkJRMjVETEU5QlFVOHNSVUZIVEN4TlFVRk5MRWRCUjFBc1RVRkJUU3hwUkVGQmFVUXNRMEZCUXp0QlFVTjZSQ3hQUVVGUExFVkJRMHdzWlVGQlpTeEZRVU5tTEUxQlFVMHNSMEZEVUN4TlFVRk5MR2xFUVVGcFJDeERRVUZETzBGQlEzcEVMRTlCUVU4c1JVRkJReXhQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTEZkQlFWY3NSVUZCUXl4TlFVRk5MRTlCUVU4c1EwRkJRenRCUVVOeVJDeFBRVUZQTEVWQlFVTXNUMEZCVHl4RlFVRm5RaXhuUWtGQlowSXNSVUZETjBNc1owSkJRV2RDTEVWQlFYRkNMRTFCUVUwc0swSkJRU3RDTEVOQlFVTTdRVUZETjBVc1QwRkJUeXhSUVVGUkxFMUJRVTBzZVVOQlFYbERMRU5CUVVNN1FVRkRMMFFzVDBGQlR5eEZRVUZwUWl4SlFVRkpMRVZCUVVNc1RVRkJUU3hSUVVGUkxFTkJRVU03UVVGRE5VTXNUMEZCVHl4RlFVRkRMR05CUVdNc1JVRkJSU3h4UWtGQmNVSXNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTeGhRVUZoTEVWQlFVTXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF6dEJRVU0xUnl4UFFVRlBMRVZCUVVNc2JVSkJRVzFDTEVWQlFVTXNUVUZCVFN4NVEwRkJlVU1zUTBGQlF6dEJRVU0xUlN4UFFVRlBMRVZCUVVNc1YwRkJWeXhGUVVGRkxHbENRVUZwUWl4RlFVRkRMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZqTDBRc1RVRkJUU3hEUVVGT0xFbEJRVmtzYlVKQlIxZzdRVUZJUkN4WFFVRlpMRzFDUVVGdFFqdEpRVU0zUWl4dlEwRkJZU3hEUVVGQk8wbEJRMklzYzBOQlFXVXNRMEZCUVR0QlFVTnFRaXhEUVVGRExFVkJTRmNzYlVKQlFXMUNMRXRCUVc1Q0xHMUNRVUZ0UWl4UlFVYzVRanRCUVRaQ1JEczdSMEZGUnp0QlFVTklMRTFCUVUwc1EwRkJReXhOUVVGTkxIZENRVUYzUWl4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVVNVF5eE5RVUZOTEU5QlFVOHNWMEZCVnp0SlFWRjBRanRSUVZCQkxHbENRVUZaTEVkQlFYVkNMRVZCUVVNc1RVRkJUU3hGUVVGRkxHVkJRV1VzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRTlCUVU4c1JVRkJSU3d3UkVGQk1FUXNSVUZCUXl4RFFVRkRPMUZCUXpWSkxHZENRVUZYTEVkQlFYVkNMRVZCUVVNc1RVRkJUU3hGUVVGRkxGbEJRVmtzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRTlCUVU4c1JVRkJSU3c0UkVGQk9FUXNSVUZCUXl4RFFVRkRPMUZCUXpWSkxGbEJRVThzUjBGQmRVSXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNUMEZCVHl4RlFVRkZMSGxHUVVGNVJpeEZRVUZETEVOQlFVTTdVVUZETDBvc1pVRkJWU3hIUVVGMVFpeEZRVUZETEUxQlFVMHNSVUZCUlN4WFFVRlhMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeFBRVUZQTEVWQlFVVXNhVVZCUVdsRkxFVkJRVU1zUTBGQlF6dFJRVU01U1N4WFFVRk5MRWRCUVhWQ0xFVkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVThzUlVGQlJTeDVTRUZCZVVnc1JVRkJReXhEUVVGRE8xRkJRemxNTEZsQlFVOHNSMEZCZFVJc1JVRkJReXhOUVVGTkxFVkJRVVVzWTBGQll5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxHMUpRVUZ0U1N4RlFVRkRMRU5CUVVNN1NVRkZiRTBzUTBGQlF6dEpRVUZCTEVOQlFVTTdRMEZEYkVJN1FVRkZSQ3hOUVVGTkxFOUJRVThzVjBGQlZ6dEpRVXQwUWp0UlFVcEJMRmxCUVU4c1IwRkJkVUlzUlVGQlF5eE5RVUZOTEVWQlFVVXNVMEZCVXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTERCQ1FVRXdRaXhGUVVGRExFTkJRVU03VVVGRGJFY3NaVUZCVlN4SFFVRjFRaXhGUVVGRExFMUJRVTBzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hQUVVGUExFVkJRVVVzYTBSQlFXdEVMRVZCUVVNc1EwRkJRenRSUVVOb1NTeFJRVUZITEVkQlFYVkNMRVZCUVVNc1RVRkJUU3hGUVVGRkxHZENRVUZuUWl4RlFVRkZMRXRCUVVzc1JVRkJSU3hEUVVGRExFVkJRVVVzVDBGQlR5eEZRVUZGTEdsRFFVRnBReXhGUVVGRExFTkJRVU03U1VGRk5VWXNRMEZCUXp0SlFVRkJMRU5CUVVNN1EwRkRiRUk3UVVGRlJDeHpRMEZCYzBNN1FVRkRkRU1zVFVGQlpTeFBRVUZQTzBsQlIzQkNMRmxCUVZrc1QwRkJaMEk3VVVGRE1VSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETzBsQlF6TkNMRU5CUVVNN1EwRkxSanRCUVVWRUxITkRRVUZ6UXp0QlFVTjBReXhOUVVGTkxGZEJRVmtzVTBGQlVTeFBRVUZQTzBsQlRTOUNPenM3TzA5QlNVYzdTVUZEU0N4WlFVRlpMRTlCUVdkQ08xRkJRekZDTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVObUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGFrTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhQUVVGUExFVkJRVVVzVlVGQlZTeEpRVUZKTEVkQlFVY3NRMEZCUXp0UlFVTTNReXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEU5QlFVOHNRMEZCUXl4aFFVRmhMRU5CUVVNN1VVRkRNME1zU1VGQlNTeERRVUZETEZWQlFWVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wbEJRM1pETEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwa3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXgxUWtGQmFVTTdVVUZEZEVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVsQlFVa3NSVUZCUlR0WlFVTXpSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEhGQ1FVRnhRaXhEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTTNSQ3hKUVVGSk8yZENRVU5HTEUxQlFVMHNTVUZCU1N4SFFVRkhMRTFCUVUwc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dG5Ra0ZEY2tVc1lVRkJZU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzJkQ1FVTXhRaXhQUVVGUExFbEJRVWtzUTBGQlF6dGhRVU5pTzFsQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVN1owSkJRMVlzWVVGQllTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMmRDUVVNeFFpeE5RVUZOTEVOQlFVTXNRMEZCUXp0aFFVTlVPMUZCUTBnc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEwb3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhOUVVGTkxFZEJRVWNzUjBGQlJ5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1QwRkJUeXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRSUVVVdlNDeE5RVUZOTEZkQlFWY3NSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU53UlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVVjJReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlFVTTdXVUZEZEVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMR2xFUVVGcFJEdFJRVVY0UlN4UFFVRlBMRVZCUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRVVVzUlVGQlF5eERRVUZETzBsQlEzSkZMRU5CUVVNN1EwRkRSanRCUVZWRU96czdPenRIUVV0SE8wRkJRMGdzVFVGQlRTeFhRVUZaTEZOQlFWRXNUMEZCVHp0SlFXTXZRanM3T3p0UFFVbEhPMGxCUTBnc1dVRkJXU3hQUVVGdlFqdFJRVU01UWl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRFppeE5RVUZOTEVOQlFVTXNaVUZCWlN4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMjVETEUxQlFVMHNRMEZCUXl4WlFVRlpMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGFFTXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhQUVVGUExFVkJRVVVzWTBGQll5eERRVUZETzFGQlF6bERMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzVDBGQlR5eERRVUZETEZWQlFWY3NRMEZCUXp0UlFVTjBReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eHBRa0ZCYVVJc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXp0UlFVTXZSU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRWRCUVVjc1QwRkJUeXhEUVVGRExIRkNRVUZ4UWl4SlFVRkpMRWRCUVVjc1EwRkJRenRSUVVOc1JTeEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFZEJRVWNzVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXp0UlFVTnVSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEU5QlFVOHNRMEZCUXl4WlFVRlpMRU5CUVVNN1VVRkZla01zU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZeXhEUVVGRE8xRkJRelZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia1FzYVVaQlFXbEdPMUZCUTJwR0xFbEJRVWtzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VVc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETERCQ1FVRXdRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMSGRDUVVGM1FpeERRVUZETzJWQlF6VkhMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFbEJRVWtzU1VGQlNTeERRVUZETEcxQ1FVRnRRanRaUVVNeFFpeFBRVUZQTEVOQlFVTXNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WVVGRGVrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTzFsQlF6ZENMRTlCUVU4c1EwRkJReXhWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXpzN1dVRkZNVVFzVDBGQlR5eERRVUZETEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJSWGhFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUlVGQlJUdFpRVU4yUWl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNMVF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEycERMRGhFUVVFNFJEdEpRVU5vUlN4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEVHl4elFrRkJjMElzUTBGQlF5eERRVUZUTEVWQlFVVXNRMEZCVXp0UlFVTnVSQ3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzFsQlExUXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRXQ3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzFsQlExQXNUMEZCVHl4SlFVRkpMRU5CUVVNc1kwRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1kwRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGRFUXNRMEZCUXp0SlFVVlRMRzlDUVVGdlFpeERRVUZETEVOQlFWTXNSVUZCUlN4RFFVRlRPMUZCUTJwRUxFOUJRVThzU1VGQlNTeERRVUZETEZsQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhaUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEY2tZc1EwRkJRenRKUVVWVExHZENRVUZuUWl4RFFVRkRMRU5CUVZNc1JVRkJSU3hEUVVGVE8xRkJRemRETEU5QlFVOHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlSQ3hEUVVGRE8wbEJSVVE3T3pzN1QwRkpSenRKUVVOSkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNkVUpCUVdsRE8xRkJRM1JFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTzFsQlF6VkNMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVsQlFVa3NSVUZCUlR0blFrRkRhRVVzVFVGQlRTeGhRVUZoTEVkQlFVY3NTVUZCU1N4eFFrRkJjVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRemRFTEVsQlFVazdiMEpCUTBZc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEdGQlFXRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzI5Q1FVTnFSeXhoUVVGaExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdiMEpCUXpGQ0xFOUJRVThzU1VGQlNTeERRVUZETzJsQ1FVTmlPMmRDUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzI5Q1FVTldMR0ZCUVdFc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dHZRa0ZETVVJc1RVRkJUU3hEUVVGRExFTkJRVU03YVVKQlExUTdXVUZEU0N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlEwb3NRMEZCUXl4SFFVRkhMRVZCUVVVN2IwSkJRMG9zVFVGQlRTeEhRVUZITEVkQlFVY3NZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8zZENRVU5zUkN4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenQzUWtGRGFFTXNUMEZCVHl4RFFVRkRMRU5CUVVNN2IwSkJRVUVzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTJRc1QwRkJUeXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETzJkQ1FVTnNRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEwd3NTVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTzJkQ1FVTm9SU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhGUVVGRkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJRMmhITEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRlZCUVZVc1JVRkJSU3hOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdZVUZEZUVVN1UwRkZTanRoUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhGUVVGRk8xbEJRemRDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03V1VGRE9VSXNTVUZCU1N4SFFVRkhMRWRCUTBnc1NVRkJTU3hEUVVGRExITkNRVUZ6UWp0blFrRkRNMElzVFVGQlRTeEpRVUZKTEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJTeEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFVkJRVVVzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMWxCUTNwSUxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1dVRkRha01zU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNSVUZCUlR0blFrRkRla01zVFVGQlRTeE5RVUZOTEVkQlFVY3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1VVRkJVeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdaMEpCUlhCSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zVFVGQlRTeERRVUZETEZWQlFWVXNSVUZCUlN4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03WVVGRGVFVTdXVUZEUkN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRU5CUVVFN1dVRkRjRU1zU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJLMElzUTBGQlF6dFpRVU16UkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdaMEpCUTNSRExFMUJRVTBzUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaENMRTFCUVUwc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM3BDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWRCUVVjc1EwRkJReXhSUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4RExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU03YjBKQlF5OUNMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRWRCUVVjc1JVRkJhMElzUTBGQlF5eERRVUZETzJkQ1FVTXhSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMkZCUTNKRU8xbEJRMFFzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4elFrRkJjMElzUTBGQlF5eERRVUZETzFsQlEzaERMRWRCUVVjc1EwRkJReXhSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETzFsQlEzQkNMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETzFsQlEySXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU03V1VGRFlpeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRPMWxCUTFnc2QwVkJRWGRGTzFsQlEzaEZMRTFCUVUwc1NVRkJTU3hQUVVGUExFTkJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlR0blFrRkRiRU1zVlVGQlZTeERRVUZETEVkQlFVY3NSVUZCUlR0dlFrRkRaQ3hQUVVGUExFVkJRVVVzUTBGQlF6dG5Ra0ZEV2l4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRFZpeERRVUZETEVOQlFVTXNRMEZCUVR0VFFVTklPMUZCUjB3c1RVRkJUU3hUUVVGVExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVVN1dVRkRia1VzU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1R0blFrRkRia0lzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEY0VZc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeFRRVUZUTEhGQ1FVRnhRaXhEUVVGRExFbEJRV2RDTzFsQlF6ZERMRTlCUVU4c1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpsRkxFTkJRVU03VVVGRlJDeFBRVUZQTEVWQlFVTXNVMEZCVXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFTkJRVU03U1VGRGVFZ3NRMEZCUXp0RFFVTkdPMEZCUlVRN096czdPMGRCUzBjN1FVRkRTQ3hOUVVGTkxGVkJRVmNzVTBGQlVTeFBRVUZQTzBsQlJ6bENPenM3TzA5QlNVYzdTVUZEU0N4WlFVRlpMRTlCUVdkQ08xRkJRekZDTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVObUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGRFTXNRMEZCUXp0SlFVVkVPenM3VDBGSFJ6dEpRVU5KTEV0QlFVc3NRMEZCUXl4VFFVRlRPMUZCUTNCQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTJoRUxFOUJRVThzUlVGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVkQlFVY3NSVUZCUXl4RFFVRkRPMGxCUXpORUxFTkJRVU03UTBGRFJqdEJRVVZFT3pzN096dEhRVXRITzBGQlEwZ3NUVUZCVFN4WFFVRlpMRk5CUVZFc1QwRkJUenRKUVVjdlFqczdPenRQUVVsSE8wbEJRMGdzV1VGQldTeFBRVUZuUWp0UlFVTXhRaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEWml4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNaRExFTkJRVU03U1VGRlJEczdPMDlCUjBjN1NVRkRTU3hMUVVGTExFTkJRVU1zVTBGQlV6dFJRVU53UWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU5vUkN4UFFVRlBMRVZCUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExFVkJRVU1zUTBGQlF6dEpRVU16UkN4RFFVRkRPME5CUTBZN1FVRkZSRHM3T3pzN1IwRkxSenRCUVVOSUxFMUJRVTBzYTBKQlFXMUNMRk5CUVZFc1QwRkJUenRKUVVkMFF6czdPenRQUVVsSE8wbEJRMGdzV1VGQldTeFBRVUZuUWp0UlFVTXhRaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEWml4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzVjBGQlZ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpGRExFTkJRVU03U1VGRlJEczdPMDlCUjBjN1NVRkRTU3hMUVVGTExFTkJRVU1zVTBGQlV6dFJRVU53UWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU5vUkN4UFFVRlBMRVZCUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExFVkJRVU1zUTBGQlF6dEpRVU16UkN4RFFVRkRPME5CUTBZN1FVRkZSQ3hOUVVGTkxHbENRVUZwUWl4SFFVRkhPMGxCUTNoQ0xFMUJRVTBzUlVGQlJTeFhRVUZYTzBsQlEyNUNMRTlCUVU4c1JVRkJSU3hYUVVGWE8wbEJRM0JDTEV0QlFVc3NSVUZCUlN4VlFVRlZPMGxCUTJwQ0xFMUJRVTBzUlVGQlJTeFhRVUZYTzBsQlEyNUNMR0ZCUVdFc1JVRkJSU3hyUWtGQmEwSTdRMEZEYkVNc1EwRkJRenRCUVVsR096czdPenRIUVV0SE8wRkJRMGdzVFVGQlRTeFBRVUZQTEhGQ1FVRnhRanRKUVVkb1F6czdPenM3T3p0UFFVOUhPMGxCUTBnc1dVRkJXU3hKUVVGWExFVkJRVVVzVFVGQmIwSXNSVUZCUlN4TlFVRnZRaXhGUVVGRkxFOUJRV2xDTzFGQlEzQkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFVkJRVVVzWTBGQll5eERRVUZETEVOQlFVTTdVVUZEZUVVc1NVRkJTU3hYUVVGWExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlJYSkNMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVN1dVRkROVUlzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMmRDUVVOc1F5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1UwRkRNVVE3VVVGRlJDeEpRVUZKTEUxQlFVMHNTVUZCU1N4TlFVRk5MRVZCUVVVN1dVRkRjRUlzVjBGQlZ5eEhRVUZITzJkQ1FVTmFMRWRCUVVjc1JVRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZETzJkQ1FVTm1MRWRCUVVjc1JVRkJReXhWUVVGVkxFVkJRVVVzVDBGQlR5eEZRVUZETzJkQ1FVTjRRaXhIUVVGSExFVkJRVU1zWVVGQllTeEZRVUZGTEUxQlFVMHNSVUZCUXp0blFrRkRNVUlzUjBGQlJ5eEZRVUZETEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRE8yZENRVU0zUWl4SFFVRkhMRTlCUVU4N1lVRkRXQ3hEUVVGRE8xTkJRMGc3WVVGQlRTeEpRVUZKTEUxQlFVMHNTVUZCU1N4UFFVRlBMRVZCUVVVN1dVRkROVUlzVjBGQlZ5eEhRVUZITzJkQ1FVTmFMRWRCUVVjc1JVRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZETzJkQ1FVTm1MRWRCUVVjc1JVRkJReXhWUVVGVkxFVkJRVVVzVDBGQlR5eEZRVUZETzJkQ1FVTjRRaXhIUVVGSExFVkJRVU1zWVVGQllTeEZRVUZGTEUxQlFVMHNSVUZCUXp0blFrRkRNVUlzUjBGQlJ5eEZRVUZETEZWQlFWVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1RVRkJUU3hKUVVGSkxGTkJRVk1zUlVGQlF6dG5Ra0ZETjBNc1IwRkJSeXhQUVVGUE8yRkJRMWdzUTBGQlF6dFRRVU5JTzJGQlFVMHNTVUZCU1N4TlFVRk5MRWxCUVVrc1MwRkJTeXhGUVVGRk8xbEJRekZDTEZkQlFWY3NSMEZCUnl4RlFVRkRMRWRCUVVjc1JVRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkRMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVU1zUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVWQlFVTXNRMEZCUXp0VFFVTnVSenRoUVVGTk8xbEJRMHdzVjBGQlZ5eEhRVUZITEVWQlFVTXNSMEZCUnl4RlFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVTXNVVUZCVVN4RlFVRkZMRTlCUVU4c1JVRkJReXhGUVVGRkxHOUNRVUZ2UWl4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFOUJRVThzUlVGQlF5eERRVUZETzFOQlEyNUhPMUZCUTBRc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEdsQ1FVRnBRaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMGxCUXpWRUxFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVOSkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCY1VJc1MwRkJTeXhGUVVGRkxIVkNRVUZwUXp0UlFVTnNSaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEV0QlFVc3NVMEZCVXp0WlFVTTFRaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETERCQ1FVRXdRaXhEUVVGRExFTkJRVU03VVVGRk9VTXNTVUZCU1N4RlFVRkRMRk5CUVZNc1JVRkJSU3hSUVVGUkxFVkJRVU1zUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVNN1VVRkZiRVlzU1VGQlNTeFRRVUZUTzFsQlExZ3NVMEZCVXl4SFFVRkhMR1ZCUVdVc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVVY2UXl4UFFVRlBMRVZCUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFRRVUZUTEVWQlFVVXNVMEZCVXl4RlFVRkRMRU5CUVVNN1NVRkRjRVFzUTBGQlF6dEpRVVZFT3pzN096czdUMEZOUnp0SlFVTklMRTFCUVUwc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4UlFVRTBRanRSUVVONFJDeFBRVUZQTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVJDeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU0N4TlFVRk5MRXRCUVVzc1owSkJRV2RDTzFGQlEzcENMRTlCUVU4c1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8wbEJRM2hETEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTklMRTFCUVUwc1MwRkJTeXhuUWtGQlowSTdVVUZEZWtJc1NVRkJTU3hIUVVGSExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlEzWkNMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTTVReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnBETEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETTBJc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUlHVnpiR2x1ZEMxa2FYTmhZbXhsSUcxaGVDMXNaVzRnS2k5Y2JtbHRjRzl5ZENCN1ZGTk9SWDBnWm5KdmJTQW5RR3RsWTJ0bGJIUXZkSE51WlNjN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JQY0hScGIyNXpMRnh1SUNCRGIyOXlaR2x1WVhSbGN5eGNiaUFnVm1WamRHOXlMRnh1SUNCV1pXTjBiM0p6TEZ4dUlDQk5ZWFJ5YVhnc1hHNTlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3WEc0Z0lIUnlZVzV6Y0c5elpVMWhkSEpwZUN4Y2JpQWdZWE56WlhKMExGeHVmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkyWldOMGIzSXRiM0JsY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTFOUVJVSmhjMlVzSUZCVFVFVkNZWE5sTENCUGNtbG5hVzVoYkZOUVJYMGdabkp2YlNBbkxpOXpjR1VuTzF4dWFXMXdiM0owSUh0TlpXRnpkWEpsTENCTGJtOTNiazFsZEhKcFkzTXNJRUYyWVdsc1lXSnNaVTFsZEhKcFkzTXNYRzRnSUdselFtbDBRWEp5WVhsTlpYUnlhV01zSUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsYzMwZ1puSnZiU0FuTGk5MGVYQmxaQzF0WlhSeWFXTnpMM1I1Y0dWa0xXMWxkSEpwWTNNbk8xeHVhVzF3YjNKMElFSnBkRUZ5Y21GNUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwySnBkQzFoY25KaGVTYzdYRzVwYlhCdmNuUWdlMVZOUVZCUVlYSmhiV1YwWlhKekxDQlZUVUZRZlNCbWNtOXRJQ2N1TDNWdFlYQW5PMXh1YVcxd2IzSjBJSHRFYVhOMFlXNWpaVTFoZEhKcGVDd2dSR2x6ZEdGdVkyVk5ZWFJ5YVhoVFpYSjJhV05sTENCa2FYTjBZVzVqWlUxaGRISnBlRkJ5YjNoNUxDQmtiVXhwYm1WaGNrbHVaR1Y0ZlNCbWNtOXRJQ2N1TDJScGMzUmhibU5sTFcxaGRISnBlQ2M3WEc1cGJYQnZjblFnZTFOd1lYSnpaVTFoZEhKcGVGTmxjblpwWTJWOUlHWnliMjBnSnk0dlpHbHpkR0Z1WTJVdGJXRjBjbWw0TDNOd1lYSnpaUzF0WVhSeWFYZ3RjMlZ5ZG1salpTYzdYRzVwYlhCdmNuUWdlMmRsZEV0dWJrZHlZWEJvTENCblpYUkxibTVIY21Gd2FFWnliMjFFVFgwZ1puSnZiU0FuTGk5MWJXRndMMnR1YmtkeVlYQm9KenRjYmx4dVpYaHdiM0owSUhSNWNHVWdVM0JoY25ObFRXRjBjbWw0VkhKaGJuTm1aWEpVZVhCbElEMGdlMXh1SUNCcE9pQkpiblF6TWtGeWNtRjVMRnh1SUNCcU9pQkpiblF6TWtGeWNtRjVMRnh1SUNCa2FYTjBZVzVqWlRvZ1JteHZZWFF6TWtGeWNtRjVMRnh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFbFNaV1IxWTJWRWFXMWxibk5wYjI1aGJHbDBlVkpsYzNWc2RDQjdYRzRnSUdScGMzUmhibU5sUHpvZ1JteHZZWFF6TWtGeWNtRjVPMXh1SUNCemNHRnljMlZOWVhSeWFYZy9PaUJOWVhBOGJuVnRZbVZ5TENCTllYQThiblZ0WW1WeUxDQnVkVzFpWlhJK1BqdGNiaUFnWlcxaVpXUmthVzVuT2lCTllYUnlhWGc3WEc1OVhHNWNibVY0Y0c5eWRDQmxiblZ0SUVScGJWSmxaSFZqZEdsdmJrMWxkR2h2WkhON1hHNGdJRlZOUVZBZ1BTQW5WVTFCVUNjc1hHNGdJRlJmVTA1RklEMGdKM1F0VTA1RkoxeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVsVlRVRlFUM0IwYVc5dWN5QjdYRzRnSUd4bFlYSnVhVzVuVW1GMFpUODZJRzUxYldKbGNqdGNiaUFnYmtOdmJYQnZibVZ1ZEhNL09pQnVkVzFpWlhJN1hHNGdJRzVGY0c5amFITS9PaUJ1ZFcxaVpYSTdYRzRnSUc1T1pXbG5hR0p2Y25NL09pQnVkVzFpWlhJN1hHNGdJSE53Y21WaFpEODZJRzUxYldKbGNqdGNiaUFnYldsdVJHbHpkRDg2SUc1MWJXSmxjanRjYmlBZ2MzQmhjbk5sVFdGMGNtbDRWR2h5WlhOb2IyeGtQem9nYm5WdFltVnlPMXh1SUNCd2NtVkRZV3hqZFd4aGRHVkVhWE4wWVc1alpVMWhkSEpwZUQ4NklHSnZiMnhsWVc0N1hHNGdJSFZ6YVc1blUzQmhjbk5sVFdGMGNtbDRQem9nWW05dmJHVmhianRjYmlBZ2MzQmhjbk5sVFdGMGNtbDRQem9nVTNCaGNuTmxUV0YwY21sNFZISmhibk5tWlhKVWVYQmxPMXh1SUNCd2NtOW5jbVZ6YzBaMWJtTS9PaUFvWlhCdll6b2diblZ0WW1WeUxDQmxjRzlqYUhOTVpXNW5kR2c2SUc1MWJXSmxjaXdnWlcxaVpXUmthVzVuY3pvZ2JuVnRZbVZ5VzExYlhTa2dQVDRnZG05cFpEdGNibjFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCSlZGTk9SVTl3ZEdsdmJuTWdlMXh1SUNCbGNITnBiRzl1UHpvZ2JuVnRZbVZ5TzF4dUlDQndaWEp3YkdWNGFYUjVQem9nYm5WdFltVnlPMXh1SUNCa2FXMC9PaUJ1ZFcxaVpYSTdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NVUnBiVkpsWkhWamRHbHZibEJoY21GdElIdGNiaUFnZFdsT1lXMWxPaUJ6ZEhKcGJtYzdYRzRnSUhaaGJIVmxPaUJ1ZFcxaVpYSWdmQ0J1ZFd4c08xeHVJQ0IwYjI5c2RHbHdPaUJ6ZEhKcGJtYzdYRzRnSUhCc1lXTmxhRzlzWkdWeVB6b2djM1J5YVc1bk8xeHVmVnh1WEc0dktpb2dWVzFoY0NCMWMyVnpJSEJ5WldOaGJHTjFiR0YwWldRZ1pHbHpkR0Z1WTJVZ2JXRjBjbWw0SUhSdklITmhkbVVnZEdsdFpTNGdkR2h2ZFdkb0lHWnZjaUIwYjI4Z2JYVmphQ0JrWVhSaExDQnRaVzF2Y25rZ1ltVmpiMjFsY3lCamIyNXpkSEpoYVc1MExseHVJQ29nYVdZZ2QyVWdhR0YyWlNBeE1EQWdNREF3SUhKdmQzTXNJR1JwYzNSaGJtTmxJRzFoZEhKcGVDQjNhV3hzSUhSaGEyVWdmakV3WjJJZ2IyWWdiV1Z0YjNKNUlHRnVaQ0J3Y205aVlXSnNlU0J2ZG1WeVpteHZkeTVjYmlBcUwxeHVaWGh3YjNKMElHTnZibk4wSUUxQldGOUVTVk5VUVU1RFJWOU5RVlJTU1ZoZlVrOVhVeUE5SURJd01EQXdPMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWVTFCVUU5d2RHbHZibk1nZTF4dUlDQnNaV0Z5Ym1sdVoxSmhkR1U2SUVsRWFXMVNaV1IxWTNScGIyNVFZWEpoYlNBOUlIdDFhVTVoYldVNklDZE1aV0Z5YVc1cFp5QnlZWFJsSnl3Z2RtRnNkV1U2SURFc0lIUnZiMngwYVhBNklDZFVhR1VnYVc1cGRHbGhiQ0JzWldGeWJtbHVaeUJ5WVhSbElHWnZjaUIwYUdVZ1pXMWlaV1JrYVc1bklHOXdkR2x0YVhwaGRHbHZiaWQ5TzF4dUlDQnVRMjl0Y0c5dVpXNTBjem9nU1VScGJWSmxaSFZqZEdsdmJsQmhjbUZ0SUQwZ2UzVnBUbUZ0WlRvZ0owTnZiWEJ2Ym1WdWRITW5MQ0IyWVd4MVpUb2dNaXdnZEc5dmJIUnBjRG9nSjFSb1pTQnVkVzFpWlhJZ2IyWWdZMjl0Y0c5dVpXNTBjeUFvWkdsdFpXNXphVzl1Y3lrZ2RHOGdjSEp2YW1WamRDQjBhR1VnWkdGMFlTQjBieWQ5TzF4dUlDQnVSWEJ2WTJoek9pQkpSR2x0VW1Wa2RXTjBhVzl1VUdGeVlXMGdQU0I3ZFdsT1lXMWxPaUFuUlhCdlkyaHpKeXdnZG1Gc2RXVTZJREFzSUhSdmIyeDBhWEE2SUNkVWFHVWdiblZ0WW1WeUlHOW1JR1Z3YjJOb2N5QjBieUJ2Y0hScGJXbDZaU0JsYldKbFpHUnBibWR6SUhacFlTQlRSMFF1SUVOdmJYQjFkR1ZrSUdGMWRHOXRZWFJwWTJGc2JIa2dhV1lnYzJWMElIUnZJREFuZlR0Y2JpQWdiazVsYVdkb1ltOXljem9nU1VScGJWSmxaSFZqZEdsdmJsQmhjbUZ0SUQwZ2UzVnBUbUZ0WlRvZ0owNWxhV2RvWW05eWN5Y3NJSFpoYkhWbE9pQXhOU3dnZEc5dmJIUnBjRG9nSjFSb1pTQnVkVzFpWlhJZ2IyWWdibVZoY21WemRDQnVaV2xuYUdKdmNuTWdkRzhnWTI5dWMzUnlkV04wSUhSb1pTQm1kWHA2ZVNCdFlXNXBabTlzWkNkOU8xeHVJQ0J6Y0hKbFlXUTZJRWxFYVcxU1pXUjFZM1JwYjI1UVlYSmhiU0E5SUh0MWFVNWhiV1U2SUNkVGNISmxZV1FuTENCMllXeDFaVG9nTVN3Z2RHOXZiSFJwY0RvZ0oxUm9aU0JsWm1abFkzUnBkbVVnYzJOaGJHVWdiMllnWlcxaVpXUmtaV1FnY0c5cGJuUnpMQ0IxYzJWa0lIZHBkR2dnYldsdUlHUnBjM1JoYm1ObElIUnZJR052Ym5SeWIyd2dkR2hsSUdOc2RXMXdaV1F2WkdsemNHVnljMlZrSUc1aGRIVnlaU0J2WmlCMGFHVWdaVzFpWldSa2FXNW5KMzA3WEc0Z0lHMXBia1JwYzNRNklFbEVhVzFTWldSMVkzUnBiMjVRWVhKaGJTQTlJSHQxYVU1aGJXVTZJQ2ROYVc0Z1pHbHpkR0Z1WTJVbkxDQjJZV3gxWlRvZ01DNHhMQ0IwYjI5c2RHbHdPaUFuVkdobElHVm1abVZqZEdsMlpTQnRhVzVwYlhWdElHUnBjM1JoYm1ObElHSmxkSGRsWlc0Z1pXMWlaV1JrWldRZ2NHOXBiblJ6TENCMWMyVmtJSGRwZEdnZ2MzQnlaV0ZrSUhSdklHTnZiblJ5YjJ3Z2RHaGxJR05zZFcxd1pXUXZaR2x6Y0dWeWMyVmtJRzVoZEhWeVpTQnZaaUIwYUdVZ1pXMWlaV1JrYVc1bkozMDdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3ZlR0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGUlRUa1ZQY0hScGIyNXpJSHRjYmlBZ1pYQnphV3h2YmpvZ1NVUnBiVkpsWkhWamRHbHZibEJoY21GdElEMGdlM1ZwVG1GdFpUb2dKMFZ3YzJsc2IyNG5MQ0IyWVd4MVpUb2dNVEFzSUhSdmIyeDBhWEE2SUNkRmNITnBiRzl1SUdseklHeGxZWEp1YVc1bklISmhkR1VuZlR0Y2JpQWdjR1Z5Y0d4bGVHbDBlVG9nU1VScGJWSmxaSFZqZEdsdmJsQmhjbUZ0SUQwZ2UzVnBUbUZ0WlRvZ0oxQmxjbkJzWlhocGRIa25MQ0IyWVd4MVpUb2dNekFzSUhSdmIyeDBhWEE2SUNkU2IzVm5hR3g1SUdodmR5QnRZVzU1SUc1bGFXZG9ZbTl5Y3lCbFlXTm9JSEJ2YVc1MElHbHVabXgxWlc1alpYTW5mVHRjYmlBZ1pHbHRPaUJKUkdsdFVtVmtkV04wYVc5dVVHRnlZVzBnUFNCN2RXbE9ZVzFsT2lBblJHbHRaVzV6YVc5dVlXeHBkSGtuTENCMllXeDFaVG9nTWl3Z2RHOXZiSFJwY0RvZ0owUnBiV1Z1YzJsdmJtRnNhWFI1SUc5bUlIUm9aU0JsYldKbFpHUnBibWNuZlR0Y2JseHVJQ0JqYjI1emRISjFZM1J2Y2lncElIdDlPMXh1ZlZ4dVhHNHZLaW9nUVdKemRISmhZM1FnWkdsdFpXNXphVzl1WVd4cGRIa2djbVZrZFdObGNpQXFMMXh1WVdKemRISmhZM1FnWTJ4aGMzTWdVbVZrZFdObGNpQjdYRzRnSUhCeWIzUmxZM1JsWkNCa1lYUmhPaUJXWldOMGIzSnpPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLRzl3ZEdsdmJuTTZJRTl3ZEdsdmJuTXBJSHRjYmlBZ0lDQjBhR2x6TG1SaGRHRWdQU0J2Y0hScGIyNXpMbVJoZEdFN1hHNGdJSDFjYmx4dUlDQXZLaW9nUlcxaVpXUnpJSFJvWlNCa1lYUmhJR2RwZG1WdUlHbHVkRzhnZEdobElIUjNieTFrYVcxbGJuTnBiMjVoYkNCemNHRmpaUzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdZVzU1ZlNCRFlYSjBaWE5wWVc0Z1kyOXZjbVJwYm1GMFpTQnZaaUIwYUdseklHVnRZbVZrWkdsdVp5QmhibVFnWkdsemRHRnVZMlVnYldGMGNtbDRJSGRvWlhKbElHRndjR3hwWTJGaWJHVXVJQ292WEc0Z0lHRmljM1J5WVdOMElIUnlZVzV6Wm05eWJTaHdZWEpoYkd4bGJFUnBjM1JoYm1ObFYyOXlhMlZ5Y3o4NklHSnZiMnhsWVc0cE9pQlFjbTl0YVhObFBFbFNaV1IxWTJWRWFXMWxibk5wYjI1aGJHbDBlVkpsYzNWc2RENDdYRzU5WEc1Y2JpOHFLaUIwTFZOT1JTQmthVzFsYm5OcGIyNWhiR2wwZVNCeVpXUjFZM1JwYjI0dUlDb3ZYRzVqYkdGemN5QlVVMDVGVW1Wa2RXTmxjaUJsZUhSbGJtUnpJRkpsWkhWalpYSWdlMXh1SUNCd2NtOTBaV04wWldRZ2NtVmtkV05sY2pvZ1ZGTk9SVHRjYmlBZ2NISnZkR1ZqZEdWa0lHbDBaWEpoZEdsdmJuTTZJRzUxYldKbGNqdGNiaUFnY0hKdmRHVmpkR1ZrSUdScGMzUmhibU5sUm01aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3p0Y2JpQWdjSEp2ZEdWamRHVmtJR1JwYzNSaGJtTmxSbTQ2SUNoaE9pQmhibmtzSUdJNklHRnVlU2tnUFQ0Z2JuVnRZbVZ5TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVnpJR0Z1SUdsdWMzUmhibU5sSUc5bUlGUlRUa1ZTWldSMVkyVnlMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOXdkR2x2Ym5OOUlHOXdkR2x2Ym5NZ1QzQjBhVzl1Y3lCMGJ5QndZWE56SUhSdklIUm9aU0JqYjI1emRISjFZM1J2Y2k1Y2JpQWdJQ29nUUcxbGJXSmxjbTltSUZSVFRrVlNaV1IxWTJWeVhHNGdJQ0FxTDF4dUlDQmpiMjV6ZEhKMVkzUnZjaWh2Y0hScGIyNXpPaUJQY0hScGIyNXpLU0I3WEc0Z0lDQWdjM1Z3WlhJb2IzQjBhVzl1Y3lrN1hHNGdJQ0FnZEdocGN5NXlaV1IxWTJWeUlEMGdibVYzSUZSVFRrVW9iM0IwYVc5dWN5azdYRzRnSUNBZ2RHaHBjeTVwZEdWeVlYUnBiMjV6SUQwZ2IzQjBhVzl1Y3o4dWFYUmxjbUYwYVc5dWN5QS9QeUF4TURBN1hHNGdJQ0FnZEdocGN5NWthWE4wWVc1alpVWnVZVzFsSUQwZ2IzQjBhVzl1Y3k1a2FYTjBZVzVqWlVadVlXMWxPMXh1SUNBZ0lIUm9hWE11WkdsemRHRnVZMlZHYmlBOUlHOXdkR2x2Ym5NdVpHbHpkR0Z1WTJWR2JqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJGYldKbFpITWdkR2hsSUdSaGRHRWdaMmwyWlc0Z2FXNTBieUIwYUdVZ2RIZHZMV1JwYldWdWMybHZibUZzSUhOd1lXTmxJSFZ6YVc1bklIUXRVMDVGSUcxbGRHaHZaQzVjWEZ4dUlDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnR3WVhKaGJHeGxiRVJwYzNSaGJtTmxWMjl5YTJWeWMxMGdWMmhsZEdobGNpQjBieUIxYzJVZ2NHRnlZV3hzWld3Z1pHbHpkR0Z1WTJVZ2QyOXlhMlZ5Y3k1Y2JpQWdJQ29nUUhKbGRIVnliaUI3WVc1NWZTQkRZWEowWlhOcFlXNGdZMjl2Y21ScGJtRjBaU0J2WmlCMGFHbHpJR1Z0WW1Wa1pHbHVaeUJoYm1RZ1pHbHpkR0Z1WTJVZ2JXRjBjbWw0SUhkb1pYSmxJR0Z3Y0d4cFkyRmliR1V1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWVhONWJtTWdkSEpoYm5ObWIzSnRLSEJoY21Gc2JHVnNSR2x6ZEdGdVkyVlhiM0pyWlhKelB6b2dZbTl2YkdWaGJpazZJRkJ5YjIxcGMyVThTVkpsWkhWalpVUnBiV1Z1YzJsdmJtRnNhWFI1VW1WemRXeDBQaUI3WEc0Z0lDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJVZ1BTQndZWEpoYkd4bGJFUnBjM1JoYm1ObFYyOXlhMlZ5Y3lBL0lHRjNZV2wwSUNoaGMzbHVZeUFvS1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdFlYUnlhWGhUWlhKMmFXTmxJRDBnYm1WM0lFUnBjM1JoYm1ObFRXRjBjbWw0VTJWeWRtbGpaU2gwY25WbExDQm1ZV3h6WlNrN1hHNGdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmthWE4wSUQwZ1lYZGhhWFFnYldGMGNtbDRVMlZ5ZG1salpTNWpZV3hqS0hSb2FYTXVaR0YwWVN3Z2RHaHBjeTVrYVhOMFlXNWpaVVp1WVcxbEtUdGNiaUFnSUNBZ0lDQWdiV0YwY21sNFUyVnlkbWxqWlM1MFpYSnRhVzVoZEdVb0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHUnBjM1E3WEc0Z0lDQWdJQ0I5SUdOaGRHTm9JQ2hsS1NCN1hHNGdJQ0FnSUNBZ0lHMWhkSEpwZUZObGNuWnBZMlV1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUdVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrb0tTQTZYRzRnSUNBZ0lDQW9LQ2tnUFQ0Z2V5QmpiMjV6ZENCeVpYUWdQU0JFYVhOMFlXNWpaVTFoZEhKcGVDNWpZV3hqS0hSb2FYTXVaR0YwWVN3Z0tHRXNJR0lwSUQwK0lIUm9hWE11WkdsemRHRnVZMlZHYmloaExDQmlLU2s3SUhKbGRDNXViM0p0WVd4cGVtVW9LVHNnY21WMGRYSnVJSEpsZEM1a1lYUmhPeUI5S1NncE8xeHVYRzRnSUNBZ1kyOXVjM1FnYldGMGNtbDRVSEp2ZUhrZ1BTQmthWE4wWVc1alpVMWhkSEpwZUZCeWIzaDVLR1JwYzNSaGJtTmxMQ0IwYUdsekxtUmhkR0V1YkdWdVozUm9LVHRjYmlBZ0lDQjBhR2x6TG5KbFpIVmpaWEl1YVc1cGRFUmhkR0ZFYVhOMEtHMWhkSEpwZUZCeWIzaDVLVHRjYmx4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZEdocGN5NXBkR1Z5WVhScGIyNXpPeUFySzJrcFhHNGdJQ0FnSUNCMGFHbHpMbkpsWkhWalpYSXVjM1JsY0NncE95QXZMeUJsZG1WeWVTQjBhVzFsSUhsdmRTQmpZV3hzSUhSb2FYTXNJSE52YkhWMGFXOXVJR2RsZEhNZ1ltVjBkR1Z5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMlJwYzNSaGJtTmxPaUJrYVhOMFlXNWpaU3dnWlcxaVpXUmthVzVuT2lCMGFHbHpMbkpsWkhWalpYSXVaMlYwVTI5c2RYUnBiMjRvS1gwN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElIUjVjR1VnVlcxaGNFOXdkR2x2Ym5NZ1BTQlBjSFJwYjI1eklDWWdWVTFCVUZCaGNtRnRaWFJsY25NZ0ppQjdYRzRnSUhCeVpVTmhiR04xYkdGMFpVUnBjM1JoYm1ObFRXRjBjbWw0UHpvZ1ltOXZiR1ZoYml4Y2JpQWdkWE5wYm1kVGNHRnljMlZOWVhSeWFYZy9PaUJpYjI5c1pXRnVMRnh1SUNCemNHRnljMlZOWVhSeWFYaFVhSEpsYzJodmJHUS9PaUJ1ZFcxaVpYSXNYRzRnSUhOd1lYSnpaVTFoZEhKcGVEODZJRk53WVhKelpVMWhkSEpwZUZSeVlXNXpabVZ5Vkhsd1pTeGNiaUFnY0hKdlozSmxjM05HZFc1alB6b2dLR1Z3YjJNNklHNTFiV0psY2l3Z1pYQnZZMmh6VEdWdVozUm9PaUJ1ZFcxaVpYSXNJR1Z0WW1Wa1pHbHVaM002SUc1MWJXSmxjbHRkVzEwcElEMCtJSFp2YVdRc1hHNTlPMXh1WEc0dktpcGNiaUFxSUVsdGNHeGxiV1Z1ZEhNZ1ZVMUJVQ0JrYVcxbGJuTnBiMjVoYkdsMGVTQnlaV1IxWTNScGIyNHVYRzRnS2x4dUlDb2dRR05zWVhOeklGVk5RVkJTWldSMVkyVnlYRzRnS2lCQVpYaDBaVzVrY3lCN1VtVmtkV05sY24xY2JpQXFMMXh1WTJ4aGMzTWdWVTFCVUZKbFpIVmpaWElnWlhoMFpXNWtjeUJTWldSMVkyVnlJSHRjYmlBZ2NISnZkR1ZqZEdWa0lISmxaSFZqWlhJNklGVk5RVkE3WEc0Z0lIQnliM1JsWTNSbFpDQmthWE4wWVc1alpVWnVZVzFsT2lCTGJtOTNiazFsZEhKcFkzTTdYRzRnSUhCeWIzUmxZM1JsWkNCa2FYTjBZVzVqWlVadU9pQkdkVzVqZEdsdmJqdGNiaUFnY0hKdmRHVmpkR1ZrSUhabFkzUnZjbk02SUc1MWJXSmxjbHRkTzF4dUlDQndjbTkwWldOMFpXUWdaR2x6ZEdGdVkyVk5ZWFJ5YVhnL09pQkdiRzloZERNeVFYSnlZWGs3WEc0Z0lIQnliM1JsWTNSbFpDQjFjMmx1WjBScGMzUmhibU5sVFdGMGNtbDRPaUJpYjI5c1pXRnVPMXh1SUNCd2NtOTBaV04wWldRZ2MzQmhjbk5sVFdGMGNtbDRQem9nVFdGd1BHNTFiV0psY2l3Z1RXRndQRzUxYldKbGNpd2diblZ0WW1WeVBqNDdYRzRnSUhCeWIzUmxZM1JsWkNCa2JVbHVaR1Y0Um5WdVl6b2dLR2s2SUc1MWJXSmxjaXdnYWpvZ2JuVnRZbVZ5S1NBOVBpQnVkVzFpWlhJN1hHNGdJSEJ5YjNSbFkzUmxaQ0IxYzJsdVoxTndZWEp6WlUxaGRISnBlRG9nWW05dmJHVmhianRjYmlBZ2NISnZkR1ZqZEdWa0lITndZWEp6WlUxaGRISnBlRlJvY21WemFHOXNaRG9nYm5WdFltVnlPMXh1SUNCd2NtOTBaV04wWldRZ2RISmhibk5tWlhKbFpGTndZWEp6WlUxaGRISnBlRDg2SUZOd1lYSnpaVTFoZEhKcGVGUnlZVzV6Wm1WeVZIbHdaVHRjYmlBZ2NISnZkR1ZqZEdWa0lIQnliMmR5WlhOelJuVnVZejg2SUNobGNHOWpPaUJ1ZFcxaVpYSXNJR1Z3YjJOb2MweGxibWQwYURvZ2JuVnRZbVZ5TENCbGJXSmxaR1JwYm1kek9pQnVkVzFpWlhKYlhWdGRLU0E5UGlCMmIybGtPMXh1SUNCd2NtOTBaV04wWldRZ1pHbHpkR0Z1WTJWR2JrRnlaM00vT2lCN1cxODZJSE4wY21sdVoxMDZJR0Z1ZVgwN1hHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVnpJR0Z1SUdsdWMzUmhibU5sSUc5bUlGVk5RVkJTWldSMVkyVnlMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOXdkR2x2Ym5OOUlHOXdkR2x2Ym5NZ1QzQjBhVzl1Y3lCMGJ5QndZWE56SUhSdklIUm9aU0JqYjI1emRISjFZM1J2Y2k1Y2JpQWdJQ29nUUcxbGJXSmxjbTltSUZWTlFWQlNaV1IxWTJWeVhHNGdJQ0FxTDF4dUlDQmpiMjV6ZEhKMVkzUnZjaWh2Y0hScGIyNXpPaUJWYldGd1QzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUhOMWNHVnlLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lHRnpjMlZ5ZENnblpHbHpkR0Z1WTJWR2JtRnRaU2NnYVc0Z2IzQjBhVzl1Y3lrN1hHNGdJQ0FnWVhOelpYSjBLQ2RrYVhOMFlXNWpaVVp1SnlCcGJpQnZjSFJwYjI1ektUdGNiaUFnSUNCMGFHbHpMbVJwYzNSaGJtTmxSbTVCY21keklEMGdiM0IwYVc5dWN6OHVaR2x6ZEdGdVkyVkdia0Z5WjNNN1hHNGdJQ0FnZEdocGN5NWthWE4wWVc1alpVWnVJRDBnYjNCMGFXOXVjeTVrYVhOMFlXNWpaVVp1SVR0Y2JpQWdJQ0IwYUdsekxuVnphVzVuVTNCaGNuTmxUV0YwY21sNElEMGdJU0Z2Y0hScGIyNXpMblZ6YVc1blUzQmhjbk5sVFdGMGNtbDRJSHg4SUNFaGIzQjBhVzl1Y3k1emNHRnljMlZOWVhSeWFYZzdYRzRnSUNBZ2RHaHBjeTV6Y0dGeWMyVk5ZWFJ5YVhoVWFISmxjMmh2YkdRZ1BTQnZjSFJwYjI1ekxuTndZWEp6WlUxaGRISnBlRlJvY21WemFHOXNaQ0EvUHlBd0xqZzdYRzRnSUNBZ2RHaHBjeTUwY21GdWMyWmxjbVZrVTNCaGNuTmxUV0YwY21sNElEMGdiM0IwYVc5dWN5NXpjR0Z5YzJWTllYUnlhWGc3WEc0Z0lDQWdkR2hwY3k1d2NtOW5jbVZ6YzBaMWJtTWdQU0J2Y0hScGIyNXpMbkJ5YjJkeVpYTnpSblZ1WXp0Y2JseHVJQ0FnSUhSb2FYTXVaR2x6ZEdGdVkyVkdibUZ0WlNBOUlHOXdkR2x2Ym5NdVpHbHpkR0Z1WTJWR2JtRnRaU0U3WEc0Z0lDQWdkR2hwY3k1a2JVbHVaR1Y0Um5WdVl5QTlJR1J0VEdsdVpXRnlTVzVrWlhnb2RHaHBjeTVrWVhSaExteGxibWQwYUNrN1hHNGdJQ0FnTHk5VmJXRndJSFZ6WlhNZ2RtVmpkRzl5SUdsdVpHVjRhVzVuTENCemJ5QjNaU0J1WldWa0lIUnZJR055WldGMFpTQmhiaUJoY25KaGVTQnZaaUIyWldOMGIzSnpJR0Z6SUdsdVpHVmpaWE11WEc0Z0lDQWdkR2hwY3k1MlpXTjBiM0p6SUQwZ2JtVjNJRUZ5Y21GNUtIUm9hWE11WkdGMFlTNXNaVzVuZEdncExtWnBiR3dvTUNrdWJXRndLQ2hmTENCcEtTQTlQaUJwS1R0Y2JpQWdJQ0IwYUdsekxuVnphVzVuUkdsemRHRnVZMlZOWVhSeWFYZ2dQU0FoS0NnaGIzQjBhVzl1Y3k1d2NtVkRZV3hqZFd4aGRHVkVhWE4wWVc1alpVMWhkSEpwZUNBbUppQjBhR2x6TG1SaGRHRXViR1Z1WjNSb0lENGdUVUZZWDBSSlUxUkJUa05GWDAxQlZGSkpXRjlTVDFkVEtWeHVJQ0FnSUNBZ2ZId2dkR2hwY3k1MWMybHVaMU53WVhKelpVMWhkSEpwZUNrN1hHNGdJQ0FnYVdZZ0tIUm9hWE11ZFhOcGJtZEVhWE4wWVc1alpVMWhkSEpwZUNsY2JpQWdJQ0FnSUc5d2RHbHZibk11WkdsemRHRnVZMlZHYmlBOUlIUm9hWE11WDJWdVkyOWtaV1JFYVhOMFlXNWpaVTFoZEhKcGVDNWlhVzVrS0hSb2FYTXBPMXh1SUNBZ0lHVnNjMlVnYVdZZ0tIUm9hWE11ZFhOcGJtZFRjR0Z5YzJWTllYUnlhWGdwWEc0Z0lDQWdJQ0J2Y0hScGIyNXpMbVJwYzNSaGJtTmxSbTRnUFNCMGFHbHpMbDlsYm1OdlpHVmtVM0JoY25ObFRXRjBjbWw0TG1KcGJtUW9kR2hwY3lrN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ2IzQjBhVzl1Y3k1a2FYTjBZVzVqWlVadUlEMGdkR2hwY3k1ZlpXNWpiMlJsWkVScGMzUmhibU5sTG1KcGJtUW9kR2hwY3lrN1hHNWNiaUFnSUNCcFppQW9kR2hwY3k1a1lYUmhMbXhsYm1kMGFDQThJREUxS1Z4dUlDQWdJQ0FnYjNCMGFXOXVjeTV1VG1WcFoyaGliM0p6SUQwZ2RHaHBjeTVrWVhSaExteGxibWQwYUNBdElERTdYRzRnSUNBZ2RHaHBjeTV5WldSMVkyVnlJRDBnYm1WM0lGVk5RVkFvYjNCMGFXOXVjeWs3WEc0Z0lDQWdMeThnZEdocGN5NXlaV1IxWTJWeUxtUnBjM1JoYm1ObFJtNGdQU0IwYUdsekxsOWxibU52WkdWa1JHbHpkR0Z1WTJVdVltbHVaQ2gwYUdsektUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEZFhOMGIyMGdaR2x6ZEdGdVkyVWdkM0poY0hCbGNpQjBieUJvWVhabElHNTFiV1Z5YVdNZ2FXNXdkWFJ6SUdsdWMzUmxZV1FnYjJZZ2MzUnlhVzVuSUc5dVpYTXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtOTBaV04wWldSY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSmJYWDBnWVNCVWFHVWdabWx5YzNRZ2FYUmxiUzVjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKYlhYMGdZaUJVYUdVZ1ptbHljM1FnYVhSbGJTNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCRWFYTjBZVzVqWlNCdFpYUnlhV011WEc0Z0lDQXFJRUJ0WlcxaVpYSnZaaUJWVFVGUVVtVmtkV05sY2x4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lGOWxibU52WkdWa1JHbHpkR0Z1WTJWTllYUnlhWGdvWVRvZ2JuVnRZbVZ5TENCaU9pQnVkVzFpWlhJcE9pQnVkVzFpWlhJZ2UxeHVJQ0FnSUdsbUlDaGhJRDA5UFNCaUtWeHVJQ0FnSUNBZ2NtVjBkWEp1SURBN1hHNGdJQ0FnYVdZZ0tHRWdQaUJpS1Z4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVpHbHpkR0Z1WTJWTllYUnlhWGdoVzNSb2FYTXVaRzFKYm1SbGVFWjFibU1vWWl3Z1lTbGRPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVJwYzNSaGJtTmxUV0YwY21sNElWdDBhR2x6TG1SdFNXNWtaWGhHZFc1aktHRXNJR0lwWFR0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQmZaVzVqYjJSbFpGTndZWEp6WlUxaGRISnBlQ2hoT2lCdWRXMWlaWElzSUdJNklHNTFiV0psY2lrNklHNTFiV0psY2lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzQmhjbk5sVFdGMGNtbDRJUzVuWlhRb1lTay9MbWRsZENoaUtTQS9QeUIwYUdsekxuTndZWEp6WlUxaGRISnBlQ0V1WjJWMEtHSXBQeTVuWlhRb1lTa2dQejhnTVR0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQmZaVzVqYjJSbFpFUnBjM1JoYm1ObEtHRTZJRzUxYldKbGNpd2dZam9nYm5WdFltVnlLVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVrYVhOMFlXNWpaVVp1S0hSb2FYTXVaR0YwWVZ0aFhTd2dkR2hwY3k1a1lYUmhXMkpkS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkZiV0psWkhNZ2RHaGxJR1JoZEdFZ1oybDJaVzRnYVc1MGJ5QjBhR1VnZEhkdkxXUnBiV1Z1YzJsdmJtRnNJSE53WVdObElIVnphVzVuSUZWTlFWQWdiV1YwYUc5a0xseHVJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0d1lYSmhiR3hsYkVScGMzUmhibU5sVjI5eWEyVnljMTBnVjJobGRHaGxjaUIwYnlCMWMyVWdjR0Z5WVd4c1pXd2daR2x6ZEdGdVkyVWdiV0YwY21sNElIZHZjbXRsY25NdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJGdWVYMGdRMkZ5ZEdWemFXRnVJR052YjNKa2FXNWhkR1VnYjJZZ2RHaHBjeUJsYldKbFpHUnBibWN1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWVhONWJtTWdkSEpoYm5ObWIzSnRLSEJoY21Gc2JHVnNSR2x6ZEdGdVkyVlhiM0pyWlhKelB6b2dZbTl2YkdWaGJpazZJRkJ5YjIxcGMyVThTVkpsWkhWalpVUnBiV1Z1YzJsdmJtRnNhWFI1VW1WemRXeDBQaUI3WEc0Z0lDQWdhV1lnS0hSb2FYTXVkWE5wYm1kRWFYTjBZVzVqWlUxaGRISnBlQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NWthWE4wWVc1alpVMWhkSEpwZUNBOUlIQmhjbUZzYkdWc1JHbHpkR0Z1WTJWWGIzSnJaWEp6SUQ4Z1lYZGhhWFFnS0dGemVXNWpJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRjBjbWw0VTJWeWRtbGpaU0E5SUc1bGR5QkVhWE4wWVc1alpVMWhkSEpwZUZObGNuWnBZMlVvZEhKMVpTd2dabUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdScGMzUWdQU0JoZDJGcGRDQnRZWFJ5YVhoVFpYSjJhV05sTG1OaGJHTW9kR2hwY3k1a1lYUmhMQ0IwYUdsekxtUnBjM1JoYm1ObFJtNWhiV1VzSUdaaGJITmxMQ0IwYUdsekxtUnBjM1JoYm1ObFJtNUJjbWR6S1R0Y2JpQWdJQ0FnSUNBZ0lDQnRZWFJ5YVhoVFpYSjJhV05sTG5SbGNtMXBibUYwWlNncE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmthWE4wTzF4dUlDQWdJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYldGMGNtbDRVMlZ5ZG1salpTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNCMGFISnZkeUJsTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtTZ3BJRHBjYmlBZ0lDQWdJQ0FnS0NncElEMCtJSHNnWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY21WMElEMGdSR2x6ZEdGdVkyVk5ZWFJ5YVhndVkyRnNZeWgwYUdsekxtUmhkR0VzSUNoaExDQmlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmtJRDBnZEdocGN5NWthWE4wWVc1alpVWnVLR0VzSUdJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1E3ZlNrN0lGeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWFF1WkdGMFlUc2dYRzRnSUNBZ0lDQWdJSDBwS0NrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtUnBjM1JoYm1ObFRXRjBjbWw0SUNZbUlDRnBjMEpwZEVGeWNtRjVUV1YwY21saktIUm9hWE11WkdsemRHRnVZMlZHYm1GdFpTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JyYm01U1pYTWdQU0JuWlhSTGJtNUhjbUZ3YUVaeWIyMUVUU2gwYUdsekxtUnBjM1JoYm1ObFRXRjBjbWw0TENCMGFHbHpMbkpsWkhWalpYSXVibVZwWjJoaWIzSnpMQ0IwYUdsekxtUmhkR0V1YkdWdVozUm9LVHRjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbkpsWkhWalpYSXVjMlYwVUhKbFkyOXRjSFYwWldSTFRrNG9hMjV1VW1WekxtdHVia2x1WkdWNFpYTXNJR3R1YmxKbGN5NXJibTVFYVhOMFlXNWpaWE1wTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lGeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2RHaHBjeTUxYzJsdVoxTndZWEp6WlUxaGRISnBlQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk52YkdVdWRHbHRaU2duYzNCaGNuTmxJRzFoZEhKcGVDY3BPMXh1SUNBZ0lDQWdJQ0FnSUd4bGRDQnlaWE02SUh0YlN5QnBiaUJyWlhsdlppQlRjR0Z5YzJWTllYUnlhWGhVY21GdWMyWmxjbFI1Y0dWZE9pQlRjR0Z5YzJWTllYUnlhWGhVY21GdWMyWmxjbFI1Y0dWYlMxMGdmQ0J1ZFd4c2ZTQjhJRzUxYkd4Y2JpQWdJQ0FnSUNBZ0lDQWdJRDBnZEdocGN5NTBjbUZ1YzJabGNtVmtVM0JoY25ObFRXRjBjbWw0SUQ4L1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdGM1lXbDBJRzVsZHlCVGNHRnljMlZOWVhSeWFYaFRaWEoyYVdObEtDa3VZMkZzWXloMGFHbHpMbVJoZEdFc0lIUm9hWE11WkdsemRHRnVZMlZHYm1GdFpTd2dkR2hwY3k1emNHRnljMlZOWVhSeWFYaFVhSEpsYzJodmJHUXNJSFJvYVhNdVpHbHpkR0Z1WTJWR2JrRnlaM01wTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk52YkdVdWRHbHRaVVZ1WkNnbmMzQmhjbk5sSUcxaGRISnBlQ2NwTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2doYVhOQ2FYUkJjbkpoZVUxbGRISnBZeWgwYUdsekxtUnBjM1JoYm1ObFJtNWhiV1VwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnJibTVTWlhNZ1BTQm5aWFJMYm01SGNtRndhQ2h5WlhNdWFTRXNJSEpsY3k1cUlTd2djbVZ6TG1ScGMzUmhibU5sSVN3Z2RHaHBjeTV5WldSMVkyVnlMbTVsYVdkb1ltOXljeXdnZEdocGN5NWtZWFJoTG14bGJtZDBhQ2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWNtVmtkV05sY2k1elpYUlFjbVZqYjIxd2RYUmxaRXRPVGlocmJtNVNaWE11YTI1dVNXNWtaWGhsY3l3Z2EyNXVVbVZ6TG10dWJrUnBjM1JoYm1ObGN5azdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lHTnZibk52YkdVdWRHbHRaU2duYzNCaGNuTmxJRzFoZEhKcGVDQjBieUJ0WVhBbktWeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzQmhjbk5sVFdGMGNtbDRJRDBnYm1WM0lFMWhjRHh1ZFcxaVpYSXNJRTFoY0R4dWRXMWlaWElzSUc1MWJXSmxjajQrS0NrN1hHNGdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J5WlhNdWFTRXViR1Z1WjNSb095QXJLMmtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHWnBjbk4wSUQwZ2NtVnpMbWtoVzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZqYjI1a0lEMGdjbVZ6TG1vaFcybGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkdsemRHRnVZMlVnUFNCeVpYTXVaR2x6ZEdGdVkyVWhXMmxkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGMGFHbHpMbk53WVhKelpVMWhkSEpwZUM1b1lYTW9abWx5YzNRcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk53WVhKelpVMWhkSEpwZUM1elpYUW9abWx5YzNRc0lHNWxkeUJOWVhBOGJuVnRZbVZ5TENCdWRXMWlaWEkrS0NrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpjR0Z5YzJWTllYUnlhWGd1WjJWMEtHWnBjbk4wS1NFdWMyVjBLSE5sWTI5dVpDd2daR2x6ZEdGdVkyVXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExuUnBiV1ZGYm1Rb0ozTndZWEp6WlNCdFlYUnlhWGdnZEc4Z2JXRndKeWs3WEc0Z0lDQWdJQ0FnSUNBZ2NtVnpMbVJwYzNSaGJtTmxJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0J5WlhNdWFTQTlJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6TG1vZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNBZ0lISmxjeUE5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z2JtVmxaR1ZrSUhOdklIUm9ZWFFnWjJGeVltRm5aU0JqYjJ4c1pXTjBiM0lnWTJGdUlHWnlaV1VnYldWdGIzSjVJR1p5YjIwZ1pHbHpkR0Z1WTJVZ2JXRjBjbWw0WEc0Z0lDQWdJQ0FnSUNBZ1lYZGhhWFFnYm1WM0lGQnliMjFwYzJVOGRtOXBaRDRvS0hKbGMyOXNkbVVwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGRGUnBiV1Z2ZFhRb0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMQ0ExTURBcE8xeHVJQ0FnSUNBZ0lDQWdJSDBwWEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUZ4dUlDQWdJR052Ym5OMElHVnRZbVZrWkdsdVp5QTlJR0YzWVdsMElIUm9hWE11Y21Wa2RXTmxjaTVtYVhSQmMzbHVZeWgwYUdsekxuWmxZM1J2Y25Nc0lDaGxjRzlqS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXdjbTluY21WemMwWjFibU1wWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjSEp2WjNKbGMzTkdkVzVqS0dWd2IyTXNJSFJvYVhNdWNtVmtkV05sY2k1blpYUk9SWEJ2WTJoektDa3NJSFJvYVhNdWNtVmtkV05sY2k1blpYUkZiV0psWkdScGJtY29LU2s3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0JtZFc1amRHbHZiaUJoY25KaGVVTmhjM1F5UTI5dmNtUnBibUYwWlhNb1pHRjBZVG9nYm5WdFltVnlXMTFiWFNrNklFTnZiM0prYVc1aGRHVnpJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUVhKeVlYa29aR0YwWVM1c1pXNW5kR2dwTG1acGJHd29NQ2t1YldGd0tDaGZMQ0JwS1NBOVBpQW9WbVZqZEc5eUxtWnliMjBvWkdGMFlWdHBYU2twS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMlZ0WW1Wa1pHbHVaem9nWVhKeVlYbERZWE4wTWtOdmIzSmthVzVoZEdWektHVnRZbVZrWkdsdVp5a3NJQzR1TGloMGFHbHpMbVJwYzNSaGJtTmxUV0YwY21sNElEOGdlMlJwYzNSaGJtTmxPaUIwYUdsekxtUnBjM1JoYm1ObFRXRjBjbWw0ZlNBNklIdDlLWDA3WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCSmJYQnNaVzFsYm5SeklHOXlhV2RwYm1Gc0lGTlFSU0JrYVcxbGJuTnBiMjVoYkdsMGVTQnlaV1IxWTNScGIyNHVYRzRnS2x4dUlDb2dRR05zWVhOeklGTlFSVkpsWkhWalpYSmNiaUFxSUVCbGVIUmxibVJ6SUh0U1pXUjFZMlZ5ZlZ4dUlDb3ZYRzVqYkdGemN5QlRVRVZTWldSMVkyVnlJR1Y0ZEdWdVpITWdVbVZrZFdObGNpQjdYRzRnSUhCeWIzUmxZM1JsWkNCeVpXUjFZMlZ5T2lCVFVFVkNZWE5sTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVnpJR0Z1SUdsdWMzUmhibU5sSUc5bUlGTlFSVkpsWkhWalpYSXVYRzRnSUNBcUlFQndZWEpoYlNCN1QzQjBhVzl1YzMwZ2IzQjBhVzl1Y3lCUGNIUnBiMjV6SUhSdklIQmhjM01nZEc4Z2RHaGxJR052Ym5OMGNuVmpkRzl5TGx4dUlDQWdLaUJBYldWdFltVnliMllnVTFCRlVtVmtkV05sY2x4dUlDQWdLaTljYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iM0IwYVc5dWN6b2dUM0IwYVc5dWN5a2dlMXh1SUNBZ0lITjFjR1Z5S0c5d2RHbHZibk1wTzF4dUlDQWdJSFJvYVhNdWNtVmtkV05sY2lBOUlHNWxkeUJUVUVWQ1lYTmxLRzl3ZEdsdmJuTXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVWdFltVmtjeUIwYUdVZ1pHRjBZU0JuYVhabGJpQnBiblJ2SUhSb1pTQjBkMjh0WkdsdFpXNXphVzl1WVd3Z2MzQmhZMlVnZFhOcGJtY2dkR2hsSUc5eWFXZHBibUZzSUZOUVJTQnRaWFJvYjJRdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJGdWVYMGdRMkZ5ZEdWemFXRnVJR052YjNKa2FXNWhkR1VnYjJZZ2RHaHBjeUJsYldKbFpHUnBibWNnWVc1a0lHUnBjM1JoYm1ObElHMWhkSEpwZUNCM2FHVnlaU0JoY0hCc2FXTmhZbXhsTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdGemVXNWpJSFJ5WVc1elptOXliU2dwT2lCUWNtOXRhWE5sUEVsU1pXUjFZMlZFYVcxbGJuTnBiMjVoYkdsMGVWSmxjM1ZzZEQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR1Z0WWlBOUlHRjNZV2wwSUhSb2FYTXVjbVZrZFdObGNpNWxiV0psWkNoMGFHbHpMbVJoZEdFcE8xeHVJQ0FnSUhKbGRIVnliaUI3WkdsemRHRnVZMlU2SUhSb2FYTXVjbVZrZFdObGNpNWthWE4wWVc1alpTd2daVzFpWldSa2FXNW5PaUJsYldKOU8xeHVJQ0I5WEc1OVhHNWNiaThxS2x4dUlDb2dTVzF3YkdWdFpXNTBjeUJ0YjJScFptbGxaQ0JUVUVVZ1pHbHRaVzV6YVc5dVlXeHBkSGtnY21Wa2RXTjBhVzl1TGx4dUlDcGNiaUFxSUVCamJHRnpjeUJRVTFCRlVtVmtkV05sY2x4dUlDb2dRR1Y0ZEdWdVpITWdlMUpsWkhWalpYSjlYRzRnS2k5Y2JtTnNZWE56SUZCVFVFVlNaV1IxWTJWeUlHVjRkR1Z1WkhNZ1VtVmtkV05sY2lCN1hHNGdJSEJ5YjNSbFkzUmxaQ0J5WldSMVkyVnlPaUJRVTFCRlFtRnpaVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbGN5QmhiaUJwYm5OMFlXNWpaU0J2WmlCUVUxQkZVbVZrZFdObGNpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0UGNIUnBiMjV6ZlNCdmNIUnBiMjV6SUU5d2RHbHZibk1nZEc4Z2NHRnpjeUIwYnlCMGFHVWdZMjl1YzNSeWRXTjBiM0l1WEc0Z0lDQXFJRUJ0WlcxaVpYSnZaaUJRVTFCRlVtVmtkV05sY2x4dUlDQWdLaTljYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iM0IwYVc5dWN6b2dUM0IwYVc5dWN5a2dlMXh1SUNBZ0lITjFjR1Z5S0c5d2RHbHZibk1wTzF4dUlDQWdJSFJvYVhNdWNtVmtkV05sY2lBOUlHNWxkeUJRVTFCRlFtRnpaU2h2Y0hScGIyNXpLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRmJXSmxaSE1nZEdobElHUmhkR0VnWjJsMlpXNGdhVzUwYnlCMGFHVWdkSGR2TFdScGJXVnVjMmx2Ym1Gc0lITndZV05sSUhWemFXNW5JSFJvWlNCdGIyUnBabWxsWkNCVFVFVWdiV1YwYUc5a0xseHVJQ0FnS2lCQWNtVjBkWEp1SUh0aGJubDlJRU5oY25SbGMybGhiaUJqYjI5eVpHbHVZWFJsSUc5bUlIUm9hWE1nWlcxaVpXUmthVzVuSUdGdVpDQmthWE4wWVc1alpTQnRZWFJ5YVhnZ2QyaGxjbVVnWVhCd2JHbGpZV0pzWlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCaGMzbHVZeUIwY21GdWMyWnZjbTBvS1RvZ1VISnZiV2x6WlR4SlVtVmtkV05sUkdsdFpXNXphVzl1WVd4cGRIbFNaWE4xYkhRK0lIdGNiaUFnSUNCamIyNXpkQ0JsYldJZ1BTQmhkMkZwZENCMGFHbHpMbkpsWkhWalpYSXVaVzFpWldRb2RHaHBjeTVrWVhSaEtUdGNiaUFnSUNCeVpYUjFjbTRnZTJScGMzUmhibU5sT2lCMGFHbHpMbkpsWkhWalpYSXVaR2x6ZEdGdVkyVXNJR1Z0WW1Wa1pHbHVaem9nWlcxaWZUdGNiaUFnZlZ4dWZWeHVYRzR2S2lwY2JpQXFJRWx0Y0d4bGJXVnVkSE1nYjNKcFoybHVZV3dnVTFCRklHUnBiV1Z1YzJsdmJtRnNhWFI1SUhKbFpIVmpkR2x2Ymk1Y2JpQXFYRzRnS2lCQVkyeGhjM01nVDNKcFoybHVZV3hUVUVWU1pXUjFZMlZ5WEc0Z0tpQkFaWGgwWlc1a2N5QjdVbVZrZFdObGNuMWNiaUFxTDF4dVkyeGhjM01nVDNKcFoybHVZV3hUVUVWU1pXUjFZMlZ5SUdWNGRHVnVaSE1nVW1Wa2RXTmxjaUI3WEc0Z0lIQnliM1JsWTNSbFpDQnlaV1IxWTJWeU9pQlBjbWxuYVc1aGJGTlFSVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbGN5QmhiaUJwYm5OMFlXNWpaU0J2WmlCUGNtbG5hVzVoYkZOUVJWSmxaSFZqWlhJdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDNCMGFXOXVjMzBnYjNCMGFXOXVjeUJQY0hScGIyNXpJSFJ2SUhCaGMzTWdkRzhnZEdobElHTnZibk4wY25WamRHOXlMbHh1SUNBZ0tpQkFiV1Z0WW1WeWIyWWdUM0pwWjJsdVlXeFRVRVZTWldSMVkyVnlYRzRnSUNBcUwxeHVJQ0JqYjI1emRISjFZM1J2Y2lodmNIUnBiMjV6T2lCUGNIUnBiMjV6S1NCN1hHNGdJQ0FnYzNWd1pYSW9iM0IwYVc5dWN5azdYRzRnSUNBZ2RHaHBjeTV5WldSMVkyVnlJRDBnYm1WM0lFOXlhV2RwYm1Gc1UxQkZLRzl3ZEdsdmJuTXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVWdFltVmtjeUIwYUdVZ1pHRjBZU0JuYVhabGJpQnBiblJ2SUhSb1pTQjBkMjh0WkdsdFpXNXphVzl1WVd3Z2MzQmhZMlVnZFhOcGJtY2dkR2hsSUc5eWFXZHBibUZzSUZOUVJTQnRaWFJvYjJRdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJGdWVYMGdRMkZ5ZEdWemFXRnVJR052YjNKa2FXNWhkR1VnYjJZZ2RHaHBjeUJsYldKbFpHUnBibWNnWVc1a0lHUnBjM1JoYm1ObElHMWhkSEpwZUNCM2FHVnlaU0JoY0hCc2FXTmhZbXhsTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdGemVXNWpJSFJ5WVc1elptOXliU2dwT2lCUWNtOXRhWE5sUEVsU1pXUjFZMlZFYVcxbGJuTnBiMjVoYkdsMGVWSmxjM1ZzZEQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR1Z0WWlBOUlHRjNZV2wwSUhSb2FYTXVjbVZrZFdObGNpNWxiV0psWkNoMGFHbHpMbVJoZEdFcE8xeHVJQ0FnSUhKbGRIVnliaUI3WkdsemRHRnVZMlU2SUhSb2FYTXVjbVZrZFdObGNpNWthWE4wWVc1alpTd2daVzFpWldSa2FXNW5PaUJsYldKOU8xeHVJQ0I5WEc1OVhHNWNibU52Ym5OMElFRjJZV2xzWVdKc1pWSmxaSFZqWlhKeklEMGdlMXh1SUNBblZVMUJVQ2M2SUZWTlFWQlNaV1IxWTJWeUxGeHVJQ0FuZEMxVFRrVW5PaUJVVTA1RlVtVmtkV05sY2l4Y2JpQWdKMU5RUlNjNklGTlFSVkpsWkhWalpYSXNYRzRnSUNkd1UxQkZKem9nVUZOUVJWSmxaSFZqWlhJc1hHNGdJQ2RQY21sbmFXNWhiRk5RUlNjNklFOXlhV2RwYm1Gc1UxQkZVbVZrZFdObGNpeGNibjA3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRXR1YjNkdVRXVjBhRzlrY3lBOUlHdGxlVzltSUhSNWNHVnZaaUJCZG1GcGJHRmliR1ZTWldSMVkyVnljenRjYmx4dUx5b3FYRzRnS2lCVmJtbG1hV1ZrSUdOc1lYTnpJR2x0Y0d4bGJXVnVkR2x1WnlCa2FXWm1aWEpsYm5RZ1pHbHRaVzV6YVc5dVlXeHBkSGtnY21Wa2RXTjBhVzl1SUcxbGRHaHZaSE11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FHTnNZWE56SUVScGJXVnVjMmx2Ym1Gc2FYUjVVbVZrZFdObGNseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdSR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZ5SUh0Y2JpQWdjSEpwZG1GMFpTQnlaV1IxWTJWeU9pQlNaV1IxWTJWeUlId2dkVzVrWldacGJtVmtPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRjbVZoZEdWeklHRnVJR2x1YzNSaGJtTmxJRzltSUVScGJXVnVjMmx2Ym1Gc2FYUjVVbVZrZFdObGNpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnWkdGMFlTQldaV04wYjNKeklIUnZJR1Z0WW1Wa0xseHVJQ0FnS2lCQWNHRnlZVzBnZTB0dWIzZHVUV1YwYUc5a2MzMGdiV1YwYUc5a0lFVnRZbVZrWkdsdVp5QnRaWFJvYjJRZ2RHOGdZbVVnWVhCd2JHbGxaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwdHViM2R1VFdWMGNtbGpjMzBnYldWMGNtbGpJRVJwYzNSaGJtTmxJRzFsZEhKcFl5QjBieUJpWlNCamIyMXdkWFJsWkNCaVpYUjNaV1Z1SUdWaFkyZ2diMllnZEdobElIWmxZM1J2Y25NdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDNCMGFXOXVjMzBnVzI5d2RHbHZibk5kSUU5d2RHbHZibk1nZEc4Z2NHRnpjeUIwYnlCMGFHVWdhVzF3YkdWdFpXNTBhVzVuSUdWdFltVmtaR1Z5Y3k1Y2JpQWdJQ29nUUcxbGJXSmxjbTltSUVScGJXVnVjMmx2Ym1Gc2FYUjVVbVZrZFdObGNseHVJQ0FnS2k5Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWkdGMFlUb2dZVzU1VzEwc0lHMWxkR2h2WkRvZ1MyNXZkMjVOWlhSb2IyUnpMQ0J0WlhSeWFXTTZJRXR1YjNkdVRXVjBjbWxqY3l3Z2IzQjBhVzl1Y3o4NklFOXdkR2x2Ym5NcElIdGNiaUFnSUNCamIyNXpkQ0J0WldGemRYSmxJRDBnYm1WM0lFMWxZWE4xY21Vb2JXVjBjbWxqS1M1blpYUk5aV0Z6ZFhKbEtHOXdkR2x2Ym5NL0xtUnBjM1JoYm1ObFJtNUJjbWR6S1R0Y2JpQWdJQ0JzWlhRZ2MzQmxZMDl3ZEdsdmJuTWdQU0I3ZlR0Y2JseHVJQ0FnSUdsbUlDaHBjMEpwZEVGeWNtRjVUV1YwY21saktHMWxkSEpwWXlrcElIdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2daR0YwWVM1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNBZ0lDQWdaR0YwWVZ0cFhTQTlJRzVsZHlCQ2FYUkJjbkpoZVNoa1lYUmhXMmxkTGw5a1lYUmhMQ0JrWVhSaFcybGRMbDlzWlc1bmRHZ3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h0WlhSb2IyUWdQVDBnSjFWTlFWQW5LU0I3WEc0Z0lDQWdJQ0J6Y0dWalQzQjBhVzl1Y3lBOUlIdGNiaUFnSUNBZ0lDQWdMaTR1ZTJSaGRHRTZJR1JoZEdGOUxGeHVJQ0FnSUNBZ0lDQXVMaTU3WkdsemRHRnVZMlZHYmpvZ2JXVmhjM1Z5Wlgwc1hHNGdJQ0FnSUNBZ0lDNHVMbnRrYVhOMFlXNWpaVVp1WVcxbE9pQnRaWFJ5YVdOOUxGeHVJQ0FnSUNBZ0lDQXVMaTU3YmtWd2IyTm9jem9nYjNCMGFXOXVjejh1WTNsamJHVnpmU3hjYmlBZ0lDQWdJQ0FnTGk0dWIzQjBhVzl1Y3l4Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNodFpYUm9iMlFnUFQwZ0ozUXRVMDVGSnlrZ2UxeHVJQ0FnSUNBZ2MzQmxZMDl3ZEdsdmJuTWdQU0I3WEc0Z0lDQWdJQ0FnSUM0dUxudGtZWFJoT2lCa1lYUmhmU3hjYmlBZ0lDQWdJQ0FnTGk0dWUyUnBjM1JoYm1ObFJtNDZJRzFsWVhOMWNtVjlMRnh1SUNBZ0lDQWdJQ0F1TGk1N1pHbHpkR0Z1WTJWR2JtRnRaVG9nYldWMGNtbGpmU3hjYmlBZ0lDQWdJQ0FnTGk0dWUybDBaWEpoZEdsdmJuTTZJRzl3ZEdsdmJuTS9MbU41WTJ4bGN5QS9QeUIxYm1SbFptbHVaV1I5TEZ4dUlDQWdJQ0FnSUNBdUxpNXZjSFJwYjI1ekxGeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHMWxkR2h2WkNBOVBTQW5VMUJGSnlrZ2UxeHVJQ0FnSUNBZ2MzQmxZMDl3ZEdsdmJuTWdQU0I3TGk0dWUyUmhkR0U2SUdSaGRHRjlMQ0F1TGk1N1pHbHpkR0Z1WTJVNklHMWxZWE4xY21WOUxDQmthWE4wWVc1alpVWjFibU4wYVc5dVRtRnRaVG9nYldWMGNtbGpMQ0F1TGk1dmNIUnBiMjV6ZlR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjM0JsWTA5d2RHbHZibk1nUFNCN0xpNHVlMlJoZEdFNklHUmhkR0Y5TENBdUxpNTdaR2x6ZEdGdVkyVTZJRzFsWVhOMWNtVjlMQ0JrYVhOMFlXNWpaVVoxYm1OMGFXOXVUbUZ0WlRvZ2JXVjBjbWxqTENBdUxpNXZjSFJwYjI1emZUdGNiaUFnSUNCOVhHNGdJQ0FnZEdocGN5NXlaV1IxWTJWeUlEMGdibVYzSUVGMllXbHNZV0pzWlZKbFpIVmpaWEp6VzIxbGRHaHZaRjBvYzNCbFkwOXdkR2x2Ym5NcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRVZ0WW1Wa2N5QjBhR1VnWkdGMFlTQm5hWFpsYmlCcGJuUnZJSFJvWlNCMGQyOHRaR2x0Wlc1emFXOXVZV3dnYzNCaFkyVWdkWE5wYm1jZ2RHaGxJR05vYjNObGJpQnRaWFJvYjJRdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdkSEpoYm5Od2IzTmxJRmRvWlhSb1pYSWdkRzhnZEhKaGJuTm1iM0p0SUdOdmIzSmthVzVoZEdWeklIUnZJR2hoZG1VZ1kyOXNkVzF1Y3kxbWFYSnpkQ0J2Y21sbGJuUmhkR2x2Ymk1Y2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0J3WVhKaGJHeGxiRVJwYzNSaGJtTmxWMjl5YTJWeWN5QlhhR1YwYUdWeUlIUnZJSFZ6WlNCd1lYSmhiR3hsYkNCa2FYTjBZVzVqWlNCamIyMXdkWFJoZEdsdmJpNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1JYSnliM0o5SUVsbUlIUm9aU0JsYldKbFpHUnBibWNnYldWMGFHOWtJSGRoY3lCdWIzUWdabTkxYm1RdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJGdWVYMGdRMkZ5ZEdWemFXRnVJR052YjNKa2FXNWhkR1VnYjJZZ2RHaHBjeUJsYldKbFpHUnBibWNnWVc1a0lHUnBjM1JoYm1ObElHMWhkSEpwZUNCM2FHVnlaU0JoY0hCc2FXTmhZbXhsTGx4dUlDQWdLaUJBYldWdFltVnliMllnUkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWeVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1lYTjVibU1nZEhKaGJuTm1iM0p0S0hSeVlXNXpjRzl6WlRvZ1ltOXZiR1ZoYmlBOUlHWmhiSE5sTENCd1lYSmhiR3hsYkVScGMzUmhibU5sVjI5eWEyVnljejg2SUdKdmIyeGxZVzRwT2lCUWNtOXRhWE5sUEVsU1pXUjFZMlZFYVcxbGJuTnBiMjVoYkdsMGVWSmxjM1ZzZEQ0Z2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG5KbFpIVmpaWElnUFQwOUlIVnVaR1ZtYVc1bFpDbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblVtVmtkV05sY2lCM1lYTWdibTkwSUdSbFptbHVaV1F1SnlrN1hHNWNiaUFnSUNCc1pYUWdlMlZ0WW1Wa1pHbHVaeXdnWkdsemRHRnVZMlY5SUQwZ1lYZGhhWFFnZEdocGN5NXlaV1IxWTJWeUxuUnlZVzV6Wm05eWJTaHdZWEpoYkd4bGJFUnBjM1JoYm1ObFYyOXlhMlZ5Y3lrN1hHNWNiaUFnSUNCcFppQW9kSEpoYm5Od2IzTmxLVnh1SUNBZ0lDQWdaVzFpWldSa2FXNW5JRDBnZEhKaGJuTndiM05sVFdGMGNtbDRLR1Z0WW1Wa1pHbHVaeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMlJwYzNSaGJtTmxPaUJrYVhOMFlXNWpaU3dnWlcxaVpXUmthVzVuT2lCbGJXSmxaR1JwYm1kOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdiV1YwY21samN5QmhkbUZwYkdGaWJHVWdZbmtnZEhsd1pTNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHRCZG1GcGJHRmliR1ZFWVhSaFZIbHdaWE45SUhSNWNHVk9ZVzFsSUhSNWNHVWdibUZ0WlZ4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZGJYWDBnVFdWMGNtbGpJRzVoYldWeklIZG9hV05vSUdWNGNHVmpkSE1nZEdobElHZHBkbVZ1SUdSaGRHRWdkSGx3WlZ4dUlDQWdLaUJBYldWdFltVnliMllnUkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWeVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1lYWmhhV3hoWW14bFRXVjBjbWxqYzBKNVZIbHdaU2gwZVhCbFRtRnRaVG9nUVhaaGFXeGhZbXhsUkdGMFlWUjVjR1Z6S1NCN1hHNGdJQ0FnY21WMGRYSnVJRTlpYW1WamRDNXJaWGx6S0VGMllXbHNZV0pzWlUxbGRISnBZM05iZEhsd1pVNWhiV1ZkS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHUnBiV1Z1YzJsdmJtRnNhWFI1SUhKbFpIVmpkR2x2YmlCdFpYUm9iMlJ6SUdGMllXbHNZV0pzWlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEpsWVdSdmJteDVYRzRnSUNBcUlFQnRaVzFpWlhKdlppQkVhVzFsYm5OcGIyNWhiR2wwZVZKbFpIVmpaWEpjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ1lYWmhhV3hoWW14bFRXVjBhRzlrY3lncElIdGNiaUFnSUNCeVpYUjFjbTRnVDJKcVpXTjBMbXRsZVhNb1FYWmhhV3hoWW14bFVtVmtkV05sY25NcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdiV1YwY21samN5QmhkbUZwYkdGaWJHVXVYRzRnSUNBcVhHNGdJQ0FxSUVCeVpXRmtiMjVzZVZ4dUlDQWdLaUJBYldWdFltVnliMllnUkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWeVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1oyVjBJR0YyWVdsc1lXSnNaVTFsZEhKcFkzTW9LU0I3WEc0Z0lDQWdiR1YwSUdGdWN6b2djM1J5YVc1blcxMGdQU0JiWFR0Y2JpQWdJQ0JQWW1wbFkzUXVkbUZzZFdWektFRjJZV2xzWVdKc1pVMWxkSEpwWTNNcExtWnZja1ZoWTJnb0tHOWlhaWtnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWVhKeVlYa2dQU0JQWW1wbFkzUXVkbUZzZFdWektHOWlhaWs3WEc0Z0lDQWdJQ0JoYm5NZ1BTQmJMaTR1WVc1ekxDQXVMaTVoY25KaGVWMDdYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUdGdWN6dGNiaUFnZlZ4dWZWeHVJbDE5IiwiaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuL3V0aWxzJztcbi8qKiBEaXN0YW5jZSBtYXRyaXggY2xhc3MgY29tcGF0aWJsZSB3aXRoIGRhdGEgc3RydWN0dXJlIG9mIHNjaXB5LnNwYXRpYWwuZGlzdGFuY2UucGRpc3QgKi9cbmV4cG9ydCBjbGFzcyBEaXN0YW5jZU1hdHJpeCB7XG4gICAgZ2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9kYXRhOyB9XG4gICAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlzLl9zaXplOyB9XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtGbG9hdDMyQXJyYXl9IGRhdGEgRGlzdGFuY2UgZGF0YVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplIE51bWJlciBvZiBvcmlnaW5hbCBvYnNlcnZhdGlvbnNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihkYXRhLCBzaXplKSB7XG4gICAgICAgIGlmIChzaXplID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGRhdGEgPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXJndW1lbnRzIGVycm9yOiBkYXRhIG9yIHNpemUgaXMgcmVxdWlyZWQuJyk7XG4gICAgICAgICAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSAoMSArIE1hdGguc3FydCgxICsgNCAqIDIgKiB0aGlzLl9kYXRhLmxlbmd0aCkpIC8gMjtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaXplICE9IE1hdGguZmxvb3IodGhpcy5fc2l6ZSkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGEgbGVuZ3RoICR7dGhpcy5fZGF0YS5sZW5ndGh9IGxlYWRzIHRvIG5vbiBpbnRlZ2VyIHNpemUgJHt0aGlzLl9zaXplfWApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgICAgICAgICBjb25zdCBkYXRhTGVuZ3RoID0gc2l6ZSAqIChzaXplIC0gMSkgLyAyO1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggIT0gZGF0YUxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGEgbGVuZ3RoLiBPYnNlcnZhdGlvbnMgc2l6ZSAke3NpemV9IHJlcXVpcmVzIGRhdGEgbGVuZ3RoICR7ZGF0YUxlbmd0aH0uYCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhID0gbmV3IEZsb2F0MzJBcnJheShkYXRhTGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBfbGluZWFyaXplSUooaSwgaikge1xuICAgICAgICBpZiAoIShpIDwgaikpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2kgbXVzdCBiZSBsZXNzIHRoYW4gaicpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZSAqIGkgKyBqIC0gTWF0aC5mbG9vcigoKGkgKyAyKSAqIChpICsgMSkpIC8gMik7XG4gICAgfVxuICAgIGdldChpLCBqKSB7XG4gICAgICAgIGlmIChpID09IGopXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgZWxzZSBpZiAoaSA8IGopXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVt0aGlzLl9saW5lYXJpemVJSihpLCBqKV07XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhW3RoaXMuX2xpbmVhcml6ZUlKKGosIGkpXTtcbiAgICB9XG4gICAgc2V0KGksIGosIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2RhdGFbdGhpcy5fbGluZWFyaXplSUooaSwgaildID0gdmFsdWU7XG4gICAgfVxuICAgIHN0YXRpYyBjYWxjKGxpc3QsIG1ldGhvZCkge1xuICAgICAgICBjb25zdCBzaXplID0gbGlzdC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHJlcyA9IG5ldyBEaXN0YW5jZU1hdHJpeCh1bmRlZmluZWQsIHNpemUpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgc2l6ZTsgaisrKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgYW55IG9mIHRoZSB2YWx1ZXMgaXMgbnVsbCwgc2V0IGRpc3RhbmNlIHRvIDFcbiAgICAgICAgICAgICAgICByZXMuc2V0KGksIGosICFpc05pbChsaXN0W2ldKSAmJiAhaXNOaWwobGlzdFtqXSkgPyBtZXRob2QobGlzdFtpXSwgbGlzdFtqXSkgOiAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICAvLyBzcXVhcmVzIGVhY2ggdmFsdWUgaW4gbWF0cml4IGluIHBsYWNlXG4gICAgc3F1YXJlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2RhdGEubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB0aGlzLl9kYXRhW2ldID0gdGhpcy5fZGF0YVtpXSAqKiAyO1xuICAgIH1cbiAgICAvLyBhZGRzIGFub3RoZXIgbWF0cml4IHRvIHRoaXMgb25lIGluIHBsYWNlXG4gICAgYWRkKG90aGVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9zaXplICE9PSBvdGhlci5fc2l6ZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTWF0cmljZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHNpemUuIFRoaXMgc2l6ZTogJHt0aGlzLl9zaXplfSwgb3RoZXIgc2l6ZTogJHtvdGhlci5fc2l6ZX1gKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9kYXRhLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgdGhpcy5fZGF0YVtpXSArPSBvdGhlci5fZGF0YVtpXTtcbiAgICB9XG4gICAgLy8gc3F1YXJlIHJvb3QgZWFjaCB2YWx1ZSBpbiBtYXRyaXggaW4gcGxhY2VcbiAgICBzcXJ0KCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2RhdGEubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB0aGlzLl9kYXRhW2ldID0gTWF0aC5zcXJ0KHRoaXMuX2RhdGFbaV0pO1xuICAgIH1cbiAgICAvL25vcm1pbHplIGRpc3RhbmNlIG1hdHJpeCBpbiBwbGFjZVxuICAgIG5vcm1hbGl6ZSgpIHtcbiAgICAgICAgbGV0IG1pbiA9IDA7XG4gICAgICAgIGxldCBtYXggPSB0aGlzLl9kYXRhWzBdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2RhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9kYXRhW2ldIDwgbWluKVxuICAgICAgICAgICAgICAgIG1pbiA9IHRoaXMuX2RhdGFbaV07XG4gICAgICAgICAgICBpZiAodGhpcy5fZGF0YVtpXSA+IG1heClcbiAgICAgICAgICAgICAgICBtYXggPSB0aGlzLl9kYXRhW2ldO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhbmdlID0gbWF4IC0gbWluO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2RhdGEubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB0aGlzLl9kYXRhW2ldID0gcmFuZ2UgPT09IDAgPyB0aGlzLl9kYXRhW2ldIC0gbWluIDogKHRoaXMuX2RhdGFbaV0gLSBtaW4pIC8gKG1heCAtIG1pbik7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdsemRHRnVZMlV0YldGMGNtbDRMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaVpHbHpkR0Z1WTJVdGJXRjBjbWw0TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVZEJMRTlCUVU4c1JVRkJReXhMUVVGTExFVkJRVU1zVFVGQlRTeFRRVUZUTEVOQlFVTTdRVUZGT1VJc01rWkJRVEpHTzBGQlF6TkdMRTFCUVUwc1QwRkJUeXhqUVVGak8wbEJTWHBDTEVsQlFVa3NTVUZCU1N4TFFVRnRRaXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlM5RExFbEJRVWtzU1VGQlNTeExRVUZoTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmVrTTdPenRQUVVkSE8wbEJRMGdzV1VGQldTeEpRVUZ0UWl4RlFVRkZMRWxCUVdFN1VVRkROVU1zU1VGQlNTeEpRVUZKTEVsQlFVa3NVMEZCVXl4RlFVRkZPMWxCUTNKQ0xFbEJRVWtzU1VGQlNTeEpRVUZKTEZOQlFWTTdaMEpCUVVVc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5dzBRMEZCTkVNc1EwRkJReXhEUVVGRE8xbEJSWEpHTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTeXhEUVVGRE8xbEJRMjVDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyaEZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU03WjBKQlEzUkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZFVKQlFYVkNMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTdzRRa0ZCT0VJc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTTdVMEZEZGtjN1lVRkJUVHRaUVVOTUxFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRPMWxCUTJ4Q0xFMUJRVTBzVlVGQlZTeEhRVUZYTEVsQlFVa3NSMEZCUnl4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEYWtRc1NVRkJTU3hKUVVGSkxFVkJRVVU3WjBKQlExSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxGVkJRVlU3YjBKQlF6TkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zTUVOQlFUQkRMRWxCUVVrc2VVSkJRWGxDTEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1owSkJRM2hITEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRE8yRkJRMjVDTzJsQ1FVRk5PMmRDUVVOTUxFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03WVVGRE0wTTdVMEZEUmp0SlFVTklMRU5CUVVNN1NVRkZUeXhaUVVGWkxFTkJRVU1zUTBGQlV5eEZRVUZGTEVOQlFWTTdVVUZEZGtNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVRkZMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJRenRSUVVOMlJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnNSU3hEUVVGRE8wbEJSVVFzUjBGQlJ5eERRVUZETEVOQlFWTXNSVUZCUlN4RFFVRlRPMUZCUTNSQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZEVWl4UFFVRlBMRU5CUVVNc1EwRkJRenRoUVVOT0xFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTTdXVUZEV2l4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdXVUZGTTBNc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETDBNc1EwRkJRenRKUVVWRUxFZEJRVWNzUTBGQlF5eERRVUZUTEVWQlFVVXNRMEZCVXl4RlFVRkZMRXRCUVdFN1VVRkRja01zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJRenRKUVVNNVF5eERRVUZETzBsQlJVUXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJUeXhKUVVGeFFpeEZRVUZGTEUxQlFXOURPMUZCUXpORkxFMUJRVTBzU1VGQlNTeEhRVUZYTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRha01zVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4alFVRmpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEyaEVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRE4wSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlEycERMR3RFUVVGclJEdG5Ra0ZEYkVRc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOc1JqdFRRVU5HTzFGQlEwUXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRZaXhEUVVGRE8wbEJSVVFzZDBOQlFYZERPMGxCUTJwRExFMUJRVTA3VVVGRFdDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRk8xbEJRM2hETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGRrTXNRMEZCUXp0SlFVVkVMREpEUVVFeVF6dEpRVU53UXl4SFFVRkhMRU5CUVVNc1MwRkJjVUk3VVVGRE9VSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhMUVVGTExFdEJRVXNzUTBGQlF5eExRVUZMTzFsQlF6VkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zWjBSQlFXZEVMRWxCUVVrc1EwRkJReXhMUVVGTExHbENRVUZwUWl4TFFVRkxMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU0xUnl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTzFsQlEzaERMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU53UXl4RFFVRkRPMGxCUlVRc05FTkJRVFJETzBsQlEzSkRMRWxCUVVrN1VVRkRWQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZPMWxCUTNoRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE4wTXNRMEZCUXp0SlFVVkVMRzFEUVVGdFF6dEpRVU0xUWl4VFFVRlRPMUZCUTJRc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlExb3NTVUZCU1N4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRNVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWM3WjBKQlEzSkNMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNSQ0xFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSE8yZENRVU55UWl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTjJRanRSUVVORUxFMUJRVTBzUzBGQlN5eEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNN1VVRkRlRUlzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSVHRaUVVONFF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkROVVlzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUNvZ1lYTWdaM0p2YXlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlozSnZheWM3WEc1cGJYQnZjblFnS2lCaGN5QjFhU0JtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2ZFdrbk8xeHVhVzF3YjNKMElDb2dZWE1nUkVjZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyUm5KenRjYm1sdGNHOXlkQ0I3YVhOT2FXeDlJR1p5YjIwZ0p5NHZkWFJwYkhNbk8xeHVYRzR2S2lvZ1JHbHpkR0Z1WTJVZ2JXRjBjbWw0SUdOc1lYTnpJR052YlhCaGRHbGliR1VnZDJsMGFDQmtZWFJoSUhOMGNuVmpkSFZ5WlNCdlppQnpZMmx3ZVM1emNHRjBhV0ZzTG1ScGMzUmhibU5sTG5Ca2FYTjBJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdSR2x6ZEdGdVkyVk5ZWFJ5YVhnZ2UxeHVJQ0JmWkdGMFlUb2dSbXh2WVhRek1rRnljbUY1TzF4dUlDQmZjMmw2WlRvZ2JuVnRZbVZ5TzF4dVhHNGdJR2RsZENCa1lYUmhLQ2s2SUVac2IyRjBNekpCY25KaGVTQjdJSEpsZEhWeWJpQjBhR2x6TGw5a1lYUmhPeUI5WEc1Y2JpQWdaMlYwSUhOcGVtVW9LVG9nYm5WdFltVnlJSHNnY21WMGRYSnVJSFJvYVhNdVgzTnBlbVU3SUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUhCaGNtRnRJSHRHYkc5aGRETXlRWEp5WVhsOUlHUmhkR0VnUkdsemRHRnVZMlVnWkdGMFlWeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYzJsNlpTQk9kVzFpWlhJZ2IyWWdiM0pwWjJsdVlXd2diMkp6WlhKMllYUnBiMjV6WEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaGtZWFJoUHpvZ1JteHZZWFF6TWtGeWNtRjVMQ0J6YVhwbFB6b2diblZ0WW1WeUtTQjdYRzRnSUNBZ2FXWWdLSE5wZW1VZ1BUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0JwWmlBb1pHRjBZU0E5UFNCMWJtUmxabWx1WldRcElIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblFYSm5kVzFsYm5SeklHVnljbTl5T2lCa1lYUmhJRzl5SUhOcGVtVWdhWE1nY21WeGRXbHlaV1F1SnlrN1hHNWNiaUFnSUNBZ0lIUm9hWE11WDJSaGRHRWdQU0JrWVhSaElUdGNiaUFnSUNBZ0lIUm9hWE11WDNOcGVtVWdQU0FvTVNBcklFMWhkR2d1YzNGeWRDZ3hJQ3NnTkNBcUlESWdLaUIwYUdsekxsOWtZWFJoTG14bGJtZDBhQ2twSUM4Z01qdGNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxsOXphWHBsSUNFOUlFMWhkR2d1Wm14dmIzSW9kR2hwY3k1ZmMybDZaU2twWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnU1c1MllXeHBaQ0JrWVhSaElHeGxibWQwYUNBa2UzUm9hWE11WDJSaGRHRXViR1Z1WjNSb2ZTQnNaV0ZrY3lCMGJ5QnViMjRnYVc1MFpXZGxjaUJ6YVhwbElDUjdkR2hwY3k1ZmMybDZaWDFnS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2hwY3k1ZmMybDZaU0E5SUhOcGVtVTdYRzRnSUNBZ0lDQmpiMjV6ZENCa1lYUmhUR1Z1WjNSb09pQnVkVzFpWlhJZ1BTQnphWHBsSUNvZ0tITnBlbVVnTFNBeEtTQXZJREk3WEc0Z0lDQWdJQ0JwWmlBb1pHRjBZU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9aR0YwWVM1c1pXNW5kR2dnSVQwZ1pHRjBZVXhsYm1kMGFDbGNiaUFnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRWx1ZG1Gc2FXUWdaR0YwWVNCc1pXNW5kR2d1SUU5aWMyVnlkbUYwYVc5dWN5QnphWHBsSUNSN2MybDZaWDBnY21WeGRXbHlaWE1nWkdGMFlTQnNaVzVuZEdnZ0pIdGtZWFJoVEdWdVozUm9mUzVnS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVmWkdGMFlTQTlJR1JoZEdFN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbDlrWVhSaElEMGdibVYzSUVac2IyRjBNekpCY25KaGVTaGtZWFJoVEdWdVozUm9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRjlzYVc1bFlYSnBlbVZKU2locE9pQnVkVzFpWlhJc0lHbzZJRzUxYldKbGNpazZJRzUxYldKbGNpQjdYRzRnSUNBZ2FXWWdLQ0VvYVNBOElHb3BLU0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMmtnYlhWemRDQmlaU0JzWlhOeklIUm9ZVzRnYWljcE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXphWHBsSUNvZ2FTQXJJR29nTFNCTllYUm9MbVpzYjI5eUtDZ29hU0FySURJcElDb2dLR2tnS3lBeEtTa2dMeUF5S1R0Y2JpQWdmVnh1WEc0Z0lHZGxkQ2hwT2lCdWRXMWlaWElzSUdvNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUdsbUlDaHBJRDA5SUdvcFhHNGdJQ0FnSUNCeVpYUjFjbTRnTUR0Y2JpQWdJQ0JsYkhObElHbG1JQ2hwSUR3Z2FpbGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDlrWVhSaFczUm9hWE11WDJ4cGJtVmhjbWw2WlVsS0tHa3NJR29wWFR0Y2JpQWdJQ0JsYkhObFhHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWZaR0YwWVZ0MGFHbHpMbDlzYVc1bFlYSnBlbVZKU2locUxDQnBLVjA3WEc0Z0lIMWNibHh1SUNCelpYUW9hVG9nYm5WdFltVnlMQ0JxT2lCdWRXMWlaWElzSUhaaGJIVmxPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQjBhR2x6TGw5a1lYUmhXM1JvYVhNdVgyeHBibVZoY21sNlpVbEtLR2tzSUdvcFhTQTlJSFpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdjM1JoZEdsaklHTmhiR004VkU5aWFqNG9iR2x6ZERvZ1NXNWtaWGhoWW14bFBGUlBZbW8rTENCdFpYUm9iMlE2SUNoaE9pQlVUMkpxTENCaU9pQlVUMkpxS1NBOVBpQnVkVzFpWlhJcE9pQkVhWE4wWVc1alpVMWhkSEpwZUNCN1hHNGdJQ0FnWTI5dWMzUWdjMmw2WlRvZ2JuVnRZbVZ5SUQwZ2JHbHpkQzVzWlc1bmRHZzdYRzRnSUNBZ1kyOXVjM1FnY21WeklEMGdibVYzSUVScGMzUmhibU5sVFdGMGNtbDRLSFZ1WkdWbWFXNWxaQ3dnYzJsNlpTazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnphWHBsT3lCcEt5c3BJSHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR29nUFNCcElDc2dNVHNnYWlBOElITnBlbVU3SUdvckt5a2dlMXh1SUNBZ0lDQWdJQ0F2THlCcFppQmhibmtnYjJZZ2RHaGxJSFpoYkhWbGN5QnBjeUJ1ZFd4c0xDQnpaWFFnWkdsemRHRnVZMlVnZEc4Z01WeHVJQ0FnSUNBZ0lDQnlaWE11YzJWMEtHa3NJR29zSUNGcGMwNXBiQ2hzYVhOMFcybGRLU0FtSmlBaGFYTk9hV3dvYkdsemRGdHFYU2tnUHlCdFpYUm9iMlFvYkdsemRGdHBYU3dnYkdsemRGdHFYU2tnT2lBeEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSEpsY3p0Y2JpQWdmVnh1WEc0Z0lDOHZJSE54ZFdGeVpYTWdaV0ZqYUNCMllXeDFaU0JwYmlCdFlYUnlhWGdnYVc0Z2NHeGhZMlZjYmlBZ2NIVmliR2xqSUhOeGRXRnlaU2dwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhSb2FYTXVYMlJoZEdFdWJHVnVaM1JvT3lCcEt5c3BYRzRnSUNBZ0lDQjBhR2x6TGw5a1lYUmhXMmxkSUQwZ2RHaHBjeTVmWkdGMFlWdHBYU0FxS2lBeU8xeHVJQ0I5WEc1Y2JpQWdMeThnWVdSa2N5QmhibTkwYUdWeUlHMWhkSEpwZUNCMGJ5QjBhR2x6SUc5dVpTQnBiaUJ3YkdGalpWeHVJQ0J3ZFdKc2FXTWdZV1JrS0c5MGFHVnlPaUJFYVhOMFlXNWpaVTFoZEhKcGVDa2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxsOXphWHBsSUNFOVBTQnZkR2hsY2k1ZmMybDZaU2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdUV0YwY21salpYTWdiWFZ6ZENCb1lYWmxJSFJvWlNCellXMWxJSE5wZW1VdUlGUm9hWE1nYzJsNlpUb2dKSHQwYUdsekxsOXphWHBsZlN3Z2IzUm9aWElnYzJsNlpUb2dKSHR2ZEdobGNpNWZjMmw2WlgxZ0tUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIUm9hWE11WDJSaGRHRXViR1Z1WjNSb095QnBLeXNwWEc0Z0lDQWdJQ0IwYUdsekxsOWtZWFJoVzJsZElDczlJRzkwYUdWeUxsOWtZWFJoVzJsZE8xeHVJQ0I5WEc1Y2JpQWdMeThnYzNGMVlYSmxJSEp2YjNRZ1pXRmphQ0IyWVd4MVpTQnBiaUJ0WVhSeWFYZ2dhVzRnY0d4aFkyVmNiaUFnY0hWaWJHbGpJSE54Y25Rb0tTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQjBhR2x6TGw5a1lYUmhMbXhsYm1kMGFEc2dhU3NyS1Z4dUlDQWdJQ0FnZEdocGN5NWZaR0YwWVZ0cFhTQTlJRTFoZEdndWMzRnlkQ2gwYUdsekxsOWtZWFJoVzJsZEtUdGNiaUFnZlZ4dVhHNGdJQzh2Ym05eWJXbHNlbVVnWkdsemRHRnVZMlVnYldGMGNtbDRJR2x1SUhCc1lXTmxYRzRnSUhCMVlteHBZeUJ1YjNKdFlXeHBlbVVvS1NCN1hHNGdJQ0FnYkdWMElHMXBiaUE5SURBN1hHNGdJQ0FnYkdWMElHMWhlQ0E5SUhSb2FYTXVYMlJoZEdGYk1GMDdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQjBhR2x6TGw5a1lYUmhMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1ZlpHRjBZVnRwWFNBOElHMXBiaWxjYmlBZ0lDQWdJQ0FnYldsdUlEMGdkR2hwY3k1ZlpHRjBZVnRwWFR0Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TGw5a1lYUmhXMmxkSUQ0Z2JXRjRLVnh1SUNBZ0lDQWdJQ0J0WVhnZ1BTQjBhR2x6TGw5a1lYUmhXMmxkTzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCeVlXNW5aU0E5SUcxaGVDQXRJRzFwYmp0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhSb2FYTXVYMlJoZEdFdWJHVnVaM1JvT3lCcEt5c3BYRzRnSUNBZ0lDQjBhR2x6TGw5a1lYUmhXMmxkSUQwZ2NtRnVaMlVnUFQwOUlEQWdQeUIwYUdsekxsOWtZWFJoVzJsZElDMGdiV2x1SURvZ0tIUm9hWE11WDJSaGRHRmJhVjBnTFNCdGFXNHBJQzhnS0cxaGVDQXRJRzFwYmlrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkpibVJsZUdGaWJHVThWRTlpYWo0Z2UxeHVJQ0JiYVc1a1pYZzZJRzUxYldKbGNsMDZJRlJQWW1vN1hHNGdJR2RsZENCc1pXNW5kR2dvS1RvZ2JuVnRZbVZ5TzF4dWZWeHVJbDE5IiwiaW1wb3J0IHsgZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZSB9IGZyb20gXCIuLi9kaXN0YW5jZS1tZXRyaWNzLW1ldGhvZHNcIjtcbmltcG9ydCB7IEJpdEFycmF5TWV0cmljc05hbWVzIH0gZnJvbSBcIi4uL3R5cGVkLW1ldHJpY3NcIjtcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmV4cG9ydCBjbGFzcyBTcGFyc2VNYXRyaXhTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fd29ya2VyQ291bnQgPSBNYXRoLm1heChuYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeSAtIDIsIDEpO1xuICAgIH1cbiAgICBhc3luYyBjYWxjKHZhbHVlcywgZm5OYW1lLCB0aHJlc2hvbGQsIG9wdHMgPSB7fSkge1xuICAgICAgICAvL3NpemUgb2YgZnVsbCBtYXRyaXhcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlcy5sZW5ndGggKiAodmFsdWVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBtaW5UaHJlc2hvbGQgPSB2YWx1ZXMubGVuZ3RoID4gMjAwMDAgPyBhd2FpdCB0aGlzLmdldE1pbmltYWxUaHJlc2hvbGQodmFsdWVzLCBmbk5hbWUsIG9wdHMpIDogMDtcbiAgICAgICAgaWYgKHRocmVzaG9sZCA8IG1pblRocmVzaG9sZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHVzaW5nIHRocmVzaG9sZCAke21pblRocmVzaG9sZH1gKTtcbiAgICAgICAgICAgIHRocmVzaG9sZCA9IG1pblRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBvcHRzWyd0aHJlc2hvbGQnXSA9IHRocmVzaG9sZDtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4vc3BhcnNlLW1hdHJpeC13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuX3dvcmtlckNvdW50OyBpZHgrKykge1xuICAgICAgICAgICAgcHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydElkeCA9IGlkeCAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgaWYgKGVuZElkeCA8PSBzdGFydElkeClcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGk6IG5ldyBJbnQzMkFycmF5KDApLCBqOiBuZXcgSW50MzJBcnJheSgwKSwgZGlzdGFuY2U6IG5ldyBGbG9hdDMyQXJyYXkoMCksIGlkeCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2UoeyB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIHRocmVzaG9sZCwgZm5OYW1lLCBvcHRzIH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGVycm9yLCBpLCBqLCBkaXN0YW5jZSB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGksIGosIGRpc3RhbmNlLCBpZHggfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgY29uc3QgZnVsbFNpemUgPSByZXN1bHRzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyArIHZhbC5pLmxlbmd0aCwgMCk7XG4gICAgICAgIGNvbnN0IGkgPSBuZXcgSW50MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGNvbnN0IGogPSBuZXcgSW50MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3IEZsb2F0MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgICAvLyBzZXR0aW5nIHRoZSByZXN1bHRzXG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGkuc2V0KHJlcy5pLCBvZmZzZXQpO1xuICAgICAgICAgICAgai5zZXQocmVzLmosIG9mZnNldCk7XG4gICAgICAgICAgICBkaXN0YW5jZS5zZXQocmVzLmRpc3RhbmNlLCBvZmZzZXQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHJlcy5pLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpLCBqLCBkaXN0YW5jZSB9O1xuICAgIH1cbiAgICBhc3luYyBnZXRNaW5pbWFsVGhyZXNob2xkKHZhbHVlcywgZm5OYW1lLCBvcHRzID0ge30pIHtcbiAgICAgICAgY29uc3QgdGhyZXNob2xkV29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCkuZmlsbChudWxsKVxuICAgICAgICAgICAgLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4vc3BhcnNlLW1hdHJpeC10aHJlc2hvbGQtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICAvLyBkYXRhIG1heSBiZSBzb3J0ZWQgYnkgY2x1c3RlcnMsIHdoaWNoIHdpbGwgaGluZGVyIHRoZSByYW5kb20gc2FtcGxpbmdcbiAgICAgICAgLy8gc28gd2Ugc2h1ZmZsZSBpdCBmaXJzdFxuICAgICAgICBjb25zdCBzaHVmZmxlZFZhbHVlcyA9IHZhbHVlcy5zbGljZSgpO1xuICAgICAgICBmb3IgKGxldCBpID0gc2h1ZmZsZWRWYWx1ZXMubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgaiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChpICsgMSkpO1xuICAgICAgICAgICAgW3NodWZmbGVkVmFsdWVzW2ldLCBzaHVmZmxlZFZhbHVlc1tqXV0gPSBbc2h1ZmZsZWRWYWx1ZXNbal0sIHNodWZmbGVkVmFsdWVzW2ldXTtcbiAgICAgICAgfVxuICAgICAgICAvL1dlIG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbWFsIHRocmVzaG9sZCBmaXJzdCxcbiAgICAgICAgLy9pbiBvcmRlciB0byBnZXQgbWF0cml4IHN1Y2ggdGhhdCBpdCBkb2VzIG5vdCBleGNlZWQgdGhlIG1heGltdW0gc2l6ZSBvZiAxR0JcbiAgICAgICAgLy93ZSBoYXZlIDMgcmV0dXJuIGFycmF5cywgZWFjaCA0IGJpdGVzIHBlciBlbGVtZW50LCBzbyBpZiB0aGUgbWF4aW11bSBzaXplIG9mIHRoZSBtYXRyaXggaXMgMUdCLFxuICAgICAgICBjb25zdCBtYXhfU3BhcnNlX21hdHJpeF9zaXplID0gNzAwMDAwMDA7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzLmxlbmd0aCAqICh2YWx1ZXMubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICAgICAgY29uc3QgdGVzdFNldFNpemVQZXJXb3JrZXIgPSBNYXRoLmZsb29yKE1hdGgubWluKG1hdFNpemUgLyAxMDAwLCAxMDAwMDAwKSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgIGNvbnN0IHRQcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLl93b3JrZXJDb3VudDsgaWR4KyspIHtcbiAgICAgICAgICAgICAgICB0UHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJZHggPSBpZHggKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhyZXNob2xkV29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHsgdmFsdWVzOiBzaHVmZmxlZFZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgc2FtcGxlTGVuZ3RoOiB0ZXN0U2V0U2l6ZVBlcldvcmtlciwgZm5OYW1lLCBvcHRzIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGRpc3RhbmNlIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHRQcm9taXNlcyk7XG4gICAgICAgICAgICBjb25zdCBmdWxsU2l6ZSA9IHJlc3VsdHMucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjICsgdmFsLmRpc3RhbmNlLmxlbmd0aCwgMCk7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IG5ldyBGbG9hdDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgZGlzdGFuY2Uuc2V0KHJlcy5kaXN0YW5jZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gcmVzLmRpc3RhbmNlLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpc3RhbmNlLnNvcnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGZyYWN0aW9uSW5kZXggPSBNYXRoLmZsb29yKG1heF9TcGFyc2VfbWF0cml4X3NpemUgLyBtYXRTaXplICogZGlzdGFuY2UubGVuZ3RoKTtcbiAgICAgICAgICAgIGxldCB0aHJlc2hvbGQgPSAxIC0gZGlzdGFuY2VbZnJhY3Rpb25JbmRleF07XG4gICAgICAgICAgICB0aHJlc2hvbGQgPSBNYXRoLm1heCh0aHJlc2hvbGQsIDAuMyk7XG4gICAgICAgICAgICByZXR1cm4gdGhyZXNob2xkO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzPy5mb3JFYWNoKCh3KSA9PiB3Py50ZXJtaW5hdGUoKSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgY2FsY1N5bmModmFsdWVzLCBmbk5hbWUsIGRpc3RhbmNlRm4sIHRocmVzaG9sZCkge1xuICAgICAgICBjb25zdCBpID0gW107XG4gICAgICAgIGNvbnN0IGogPSBbXTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VzID0gW107XG4gICAgICAgIGxldCBjbnQgPSAwO1xuICAgICAgICBsZXQgbWkgPSAwO1xuICAgICAgICBsZXQgbWogPSAwO1xuICAgICAgICBjb25zdCBmdWxsU2l6ZSA9IHZhbHVlcy5sZW5ndGggKiAodmFsdWVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgd2hpbGUgKGNudCA8IGZ1bGxTaXplKSB7XG4gICAgICAgICAgICAvL2NvbnN0IHZhbHVlID0gc2VxMUxpc3RbbWldICYmIHNlcTFMaXN0W21qXSA/IGhhbW1pbmcoc2VxMUxpc3RbbWldLCBzZXExTGlzdFttal0pIDogMDtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gIWlzTmlsKHZhbHVlc1ttaV0pICYmICFpc05pbCh2YWx1ZXNbbWpdKSA/XG4gICAgICAgICAgICAgICAgZGlzdGFuY2VGbih2YWx1ZXNbbWldLCB2YWx1ZXNbbWpdKSA6IDE7XG4gICAgICAgICAgICBjb25zdCBzaW1pbGFyaXR5ID0gT2JqZWN0LnZhbHVlcyhCaXRBcnJheU1ldHJpY3NOYW1lcykuc29tZSgoYSkgPT4gYSA9PT0gZm5OYW1lKSA/IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UodmFsdWUpIDogMSAtIHZhbHVlO1xuICAgICAgICAgICAgaWYgKHNpbWlsYXJpdHkgPj0gdGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgaS5wdXNoKG1pKTtcbiAgICAgICAgICAgICAgICBqLnB1c2gobWopO1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNudCsrO1xuICAgICAgICAgICAgbWorKztcbiAgICAgICAgICAgIGlmIChtaiA9PT0gdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG1pKys7XG4gICAgICAgICAgICAgICAgbWogPSBtaSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaUFycmF5ID0gbmV3IEludDMyQXJyYXkoaSk7XG4gICAgICAgIGNvbnN0IGpBcnJheSA9IG5ldyBJbnQzMkFycmF5KGopO1xuICAgICAgICBjb25zdCBkaXN0YW5jZUFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShkaXN0YW5jZXMpO1xuICAgICAgICByZXR1cm4geyBpOiBpQXJyYXksIGo6IGpBcnJheSwgZGlzdGFuY2U6IGRpc3RhbmNlQXJyYXkgfTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3g1UWtGQmVVSXNSVUZCUlN4TlFVRk5MRFpDUVVFMlFpeERRVUZETzBGQlEzaEZMRTlCUVU4c1JVRkJSU3h2UWtGQmIwSXNSVUZCZVVJc1RVRkJUU3hyUWtGQmEwSXNRMEZCUXp0QlFVTXZSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNVMEZCVXl4RFFVRkRPMEZCVVdoRExFMUJRVTBzVDBGQlR5eHRRa0ZCYlVJN1NVRkZOVUk3VVVGRFJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlSU3hEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCU1N4TlFVRm5RaXhGUVVGRkxFMUJRVzlDTEVWQlFVVXNVMEZCYVVJc1JVRkJSU3hQUVVFeVFpeEZRVUZGTzFGQlJ6TkhMSEZDUVVGeFFqdFJRVU55UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZUVRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlJURkVMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NTMEZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRrY3NTVUZCU1N4VFFVRlRMRWRCUVVjc1dVRkJXU3hGUVVGRk8xbEJRelZDTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc2JVSkJRVzFDTEZsQlFWa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRMME1zVTBGQlV5eEhRVUZITEZsQlFWa3NRMEZCUXp0VFFVTXhRanRSUVVORUxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeFJRVUZSTEVkQlExb3NTVUZCU1N4TFFVRkxMRU5CUVRoQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVVTFSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXgzUWtGQmQwSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnNTU3hMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTm9SQ3hSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhoUVVGaExFVkJRVVVzV1VGQldTeEZRVUZGTEVWQlFVVTdaMEpCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1owSkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03WjBKQlF5OUZMRWxCUVVrc1RVRkJUU3hKUVVGSkxGRkJRVkU3YjBKQlEzQkNMR0ZCUVdFc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzU1VGQlNTeFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxFbEJRVWtzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlEyeEhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFRRVUZUTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlF6bEZMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RlFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJReXhGUVVGRExFVkJRVkVzUlVGQlJUdHZRa0ZEYWtVc1NVRkJTU3hMUVVGTExFVkJRVVU3ZDBKQlExUXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzNkQ1FVTjZRaXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdjVUpCUTNKQ08zbENRVUZOTzNkQ1FVTk1MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0M1FrRkRla0lzWVVGQllTeERRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzUjBGQlJ5eEZRVUZETEVOQlFVTXNRMEZCUXp0eFFrRkRkRU03WjBKQlEwZ3NRMEZCUXl4RFFVRkRPMWxCUTBvc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRFNqdFJRVVZFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTTFReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRMjVETEUxQlFVMHNRMEZCUXl4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyNURMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFbEJRVWtzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm1MSE5DUVVGelFqdFJRVU4wUWl4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxFOUJRVThzUlVGQlJUdFpRVU42UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRja0lzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEzSkNMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRaUVVOdVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03VTBGRGVFSTdVVUZEUkN4UFFVRlBMRVZCUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVTXNRMEZCUXp0SlFVTXhRaXhEUVVGRE8wbEJSVThzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVGSkxFMUJRV2RDTEVWQlFVVXNUVUZCYjBJc1JVRkJSU3hQUVVFeVFpeEZRVUZGTzFGQlEzaEhMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNN1lVRkROMFFzUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEd0RFFVRnJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSWFpHTEhkRlFVRjNSVHRSUVVONFJTeDVRa0ZCZVVJN1VVRkRla0lzVFVGQlRTeGpRVUZqTEVkQlFVY3NUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJRM1JETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1kwRkJZeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU5zUkN4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUXpsRExFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTJwR08xRkJSVVFzYlVSQlFXMUVPMUZCUTI1RUxEWkZRVUUyUlR0UlFVTTNSU3hwUjBGQmFVYzdVVUZEYWtjc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4UlFVRlZMRU5CUVVNN1VVRkRNVU1zU1VGQlNUdFpRVU5HTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU40UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03V1VGRE1VUXNUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NSVUZCUlN4UFFVRlRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZEYWtjc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFXOURMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVVZzUml4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdG5Ra0ZEYUVRc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1lVRkJZU3hGUVVGRkxGbEJRVmtzUlVGQlJTeEZRVUZGTzI5Q1FVTXpSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEhRVUZITEVkQlFVY3NVMEZCVXl4RFFVRkRPMjlDUVVOcVF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SFFVRkhMRXRCUVVzc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRE8yOUNRVU12UlN4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJReXhOUVVGTkxFVkJRVVVzWTBGQll5eEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1dVRkJXU3hGUVVGRkxHOUNRVUZ2UWl4RlFVRkZMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTm9TU3huUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzUTBGQlF5eEZRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkRMRXRCUVVzc1JVRkJSU3hSUVVGUkxFVkJRVU1zUlVGQlF5eEZRVUZSTEVWQlFVVTdkMEpCUTNCRkxHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzNkQ1FVTnNReXhKUVVGSkxFdEJRVXNzUlVGQlJUczBRa0ZCUlN4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03ZVVKQlFVVTdOa0pCUVUwN05FSkJRM1pETEdGQlFXRXNRMEZCUXl4RlFVRkRMRkZCUVZFc1JVRkJReXhEUVVGRExFTkJRVU03ZVVKQlF6TkNPMjlDUVVOSUxFTkJRVU1zUTBGQlF6dG5Ra0ZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOS08xbEJSVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFsQlF6ZERMRTFCUVUwc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZETlVVc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1dVRkROVU1zU1VGQlNTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJZc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeFBRVUZQTEVWQlFVVTdaMEpCUTNwQ0xGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYmtNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRPMkZCUXk5Q08xbEJRMFFzVVVGQlVTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUldoQ0xFMUJRVTBzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTEVkQlFVY3NUMEZCVHl4SFFVRkhMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVVZ5Uml4SlFVRkpMRk5CUVZNc1IwRkJSeXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMWxCUXpWRExGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU55UXl4UFFVRlBMRk5CUVZNc1EwRkJRenRUUVVOc1FqdFJRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMWxCUTFZc1owSkJRV2RDTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVOcVJDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMU5CUTFvN1NVRkZTQ3hEUVVGRE8wbEJSVTBzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCU3l4TlFVRXJRaXhGUVVGRkxFMUJRVzlDTEVWQlFVVXNWVUZCYjBJc1JVRkJSU3hUUVVGcFFqdFJRVU4yU0N4TlFVRk5MRU5CUVVNc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRGRrSXNUVUZCVFN4RFFVRkRMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJRM1pDTEUxQlFVMHNVMEZCVXl4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVNdlFpeEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRXaXhKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEV0N4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRFdDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVrUXNUMEZCVHl4SFFVRkhMRWRCUVVjc1VVRkJVU3hGUVVGRk8xbEJRM0pDTEhWR1FVRjFSanRaUVVOMlJpeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOMFJDeFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGVrTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU5vU1N4SlFVRkpMRlZCUVZVc1NVRkJTU3hUUVVGVExFVkJRVVU3WjBKQlF6TkNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTFnc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRXQ3hUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMkZCUTNaQ08xbEJRMFFzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEVGl4RlFVRkZMRVZCUVVVc1EwRkJRenRaUVVOTUxFbEJRVWtzUlVGQlJTeExRVUZMTEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVN1owSkJRM2hDTEVWQlFVVXNSVUZCUlN4RFFVRkRPMmRDUVVOTUxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMkZCUTJJN1UwRkRSanRSUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEycERMRTFCUVUwc1lVRkJZU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUld4RUxFOUJRVThzUlVGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEdGQlFXRXNSVUZCUXl4RFFVRkRPMGxCUTNwRUxFTkJRVU03UTBGRFNpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJR2RsZEZOcGJXbHNZWEpwZEhsR2NtOXRSR2x6ZEdGdVkyVWdmU0JtY205dElGd2lMaTR2WkdsemRHRnVZMlV0YldWMGNtbGpjeTF0WlhSb2IyUnpYQ0k3WEc1cGJYQnZjblFnZXlCQ2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5d2dTMjV2ZDI1TlpYUnlhV056TENCTlpXRnpkWEpsSUgwZ1puSnZiU0JjSWk0dUwzUjVjR1ZrTFcxbGRISnBZM05jSWp0Y2JtbHRjRzl5ZENCN0lHbHpUbWxzSUgwZ1puSnZiU0JjSWk0dmRYUnBiSE5jSWp0Y2JseHVaWGh3YjNKMElIUjVjR1VnVTNCaGNuTmxUV0YwY21sNFVtVnpkV3gwSUQwZ2UxeHVJQ0JwT2lCSmJuUXpNa0Z5Y21GNUxGeHVJQ0JxT2lCSmJuUXpNa0Z5Y21GNUxGeHVJQ0JrYVhOMFlXNWpaVG9nUm14dllYUXpNa0Z5Y21GNUxGeHVJQ0JwWkhnL09pQnVkVzFpWlhKY2JuMDdYRzVsZUhCdmNuUWdZMnhoYzNNZ1UzQmhjbk5sVFdGMGNtbDRVMlZ5ZG1salpTQjdYRzRnSUNBZ2NISnBkbUYwWlNCZmQyOXlhMlZ5UTI5MWJuUTZJRzUxYldKbGNqdGNiaUFnSUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQWdJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBJRDBnVFdGMGFDNXRZWGdvYm1GMmFXZGhkRzl5TG1oaGNtUjNZWEpsUTI5dVkzVnljbVZ1WTNrZ0xTQXlMQ0F4S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZWE41Ym1NZ1kyRnNZenhVUGloMllXeDFaWE02SUVGeWNtRjVQRlErTENCbWJrNWhiV1U2SUV0dWIzZHVUV1YwY21samN5d2dkR2h5WlhOb2IyeGtPaUJ1ZFcxaVpYSXNJRzl3ZEhNNklIdGJYem9nYzNSeWFXNW5YVG9nWVc1NWZTQTlJSHQ5S1NCN1hHNWNibHh1SUNBZ0lDQWdMeTl6YVhwbElHOW1JR1oxYkd3Z2JXRjBjbWw0WEc0Z0lDQWdJQ0JqYjI1emRDQnRZWFJUYVhwbElEMGdkbUZzZFdWekxteGxibWQwYUNBcUlDaDJZV3gxWlhNdWJHVnVaM1JvSUMwZ01Ta2dMeUF5TzF4dUlDQWdJQ0FnWTI5dWMzUWdZMmgxYm10VGFYcGxJRDBnVFdGMGFDNW1iRzl2Y2lodFlYUlRhWHBsSUM4Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCdGFXNVVhSEpsYzJodmJHUWdQU0IyWVd4MVpYTXViR1Z1WjNSb0lENGdNakJmTURBd0lEOGdZWGRoYVhRZ2RHaHBjeTVuWlhSTmFXNXBiV0ZzVkdoeVpYTm9iMnhrS0haaGJIVmxjeXdnWm01T1lXMWxMQ0J2Y0hSektTQTZJREE3WEc0Z0lDQWdJQ0JwWmlBb2RHaHlaWE5vYjJ4a0lEd2diV2x1VkdoeVpYTm9iMnhrS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk52YkdVdWJHOW5LR0IxYzJsdVp5QjBhSEpsYzJodmJHUWdKSHR0YVc1VWFISmxjMmh2YkdSOVlDazdYRzRnSUNBZ0lDQWdJSFJvY21WemFHOXNaQ0E5SUcxcGJsUm9jbVZ6YUc5c1pEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHOXdkSE5iSjNSb2NtVnphRzlzWkNkZElEMGdkR2h5WlhOb2IyeGtPMXh1SUNBZ0lDQWdZMjl1YzNRZ2NISnZiV2x6WlhNZ1BWeHVJQ0FnSUNBZ0lDQnVaWGNnUVhKeVlYazhVSEp2YldselpUeFRjR0Z5YzJWTllYUnlhWGhTWlhOMWJIUStQaWgwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSGR2Y210bGNuTWdQU0J1WlhjZ1FYSnlZWGtvZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTG1acGJHd29iblZzYkNrdWJXRndLQ2dwSUQwK0lHNWxkeUJYYjNKclpYSW9ibVYzSUZWU1RDZ25MaTl6Y0dGeWMyVXRiV0YwY21sNExYZHZjbXRsY2ljc0lHbHRjRzl5ZEM1dFpYUmhMblZ5YkNrcEtUdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHbGtlQ0E5SURBN0lHbGtlQ0E4SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwT3lCcFpIZ3JLeWtnZTF4dUlDQWdJQ0FnSUNCd2NtOXRhWE5sYzF0cFpIaGRJRDBnYm1WM0lGQnliMjFwYzJVb0tISmxjMjlzZG1WWGIzSnJaWElzSUhKbGFtVmpkRmR2Y210bGNpa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBTV1I0SUQwZ2FXUjRJQ29nWTJoMWJtdFRhWHBsTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdWdVpFbGtlQ0E5SUdsa2VDQTlQVDBnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFnTFNBeElEOGdiV0YwVTJsNlpTQTZJQ2hwWkhnZ0t5QXhLU0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvWlc1a1NXUjRJRHc5SUhOMFlYSjBTV1I0S1NCY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVlhiM0pyWlhJb2UyazZJRzVsZHlCSmJuUXpNa0Z5Y21GNUtEQXBMQ0JxT2lCdVpYY2dTVzUwTXpKQmNuSmhlU2d3S1N3Z1pHbHpkR0Z1WTJVNklHNWxkeUJHYkc5aGRETXlRWEp5WVhrb01Da3NJR2xrZUgwcE8xeHVJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1d2IzTjBUV1Z6YzJGblpTaDdkbUZzZFdWekxDQnpkR0Z5ZEVsa2VDd2daVzVrU1dSNExDQjBhSEpsYzJodmJHUXNJR1p1VG1GdFpTd2diM0IwYzMwcE8xeHVJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1dmJtMWxjM05oWjJVZ1BTQW9lMlJoZEdFNklIdGxjbkp2Y2l3Z2FTd2dhaXdnWkdsemRHRnVZMlY5ZlNrNklIWnZhV1FnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCN0lGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCM2IzSnJaWEp6VzJsa2VGMHVkR1Z5YldsdVlYUmxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYW1WamRGZHZjbXRsY2lobGNuSnZjaWs3SUZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxWMjl5YTJWeUtIdHBMQ0JxTENCa2FYTjBZVzVqWlN3Z2FXUjRmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5OMElISmxjM1ZzZEhNZ1BTQmhkMkZwZENCUWNtOXRhWE5sTG1Gc2JDaHdjbTl0YVhObGN5azdYRzRnSUNBZ0lDQmpiMjV6ZENCbWRXeHNVMmw2WlNBOUlISmxjM1ZzZEhNdWNtVmtkV05sS0NoaFkyTXNJSFpoYkNrZ1BUNGdZV05qSUNzZ2RtRnNMbWt1YkdWdVozUm9MQ0F3S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR2tnUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2htZFd4c1UybDZaU2s3WEc0Z0lDQWdJQ0JqYjI1emRDQnFJRDBnYm1WM0lFbHVkRE15UVhKeVlYa29ablZzYkZOcGVtVXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJVZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHWjFiR3hUYVhwbEtUdGNiaUFnSUNBZ0lHeGxkQ0J2Wm1aelpYUWdQU0F3TzF4dUlDQWdJQ0FnTHk4Z2MyVjBkR2x1WnlCMGFHVWdjbVZ6ZFd4MGMxeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnlaWE1nYjJZZ2NtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQnBMbk5sZENoeVpYTXVhU3dnYjJabWMyVjBLVHRjYmlBZ0lDQWdJQ0FnYWk1elpYUW9jbVZ6TG1vc0lHOW1abk5sZENrN1hHNGdJQ0FnSUNBZ0lHUnBjM1JoYm1ObExuTmxkQ2h5WlhNdVpHbHpkR0Z1WTJVc0lHOW1abk5sZENrN1hHNGdJQ0FnSUNBZ0lHOW1abk5sZENBclBTQnlaWE11YVM1c1pXNW5kR2c3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdlMmtzSUdvc0lHUnBjM1JoYm1ObGZUdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2NtbDJZWFJsSUdGemVXNWpJR2RsZEUxcGJtbHRZV3hVYUhKbGMyaHZiR1E4VkQ0b2RtRnNkV1Z6T2lCQmNuSmhlVHhVUGl3Z1ptNU9ZVzFsT2lCTGJtOTNiazFsZEhKcFkzTXNJRzl3ZEhNNklIdGJYem9nYzNSeWFXNW5YVG9nWVc1NWZTQTlJSHQ5S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwYUhKbGMyaHZiR1JYYjNKclpYSnpJRDBnYm1WM0lFRnljbUY1S0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1M1bWFXeHNLRzUxYkd3cFhHNGdJQ0FnSUNBZ0lDNXRZWEFvS0NrZ1BUNGdibVYzSUZkdmNtdGxjaWh1WlhjZ1ZWSk1LQ2N1TDNOd1lYSnpaUzF0WVhSeWFYZ3RkR2h5WlhOb2IyeGtMWGR2Y210bGNpY3NJR2x0Y0c5eWRDNXRaWFJoTG5WeWJDa3BLVHRjYmlBZ0lDQWdJRnh1SUNBZ0lDQWdMeThnWkdGMFlTQnRZWGtnWW1VZ2MyOXlkR1ZrSUdKNUlHTnNkWE4wWlhKekxDQjNhR2xqYUNCM2FXeHNJR2hwYm1SbGNpQjBhR1VnY21GdVpHOXRJSE5oYlhCc2FXNW5YRzRnSUNBZ0lDQXZMeUJ6YnlCM1pTQnphSFZtWm14bElHbDBJR1pwY25OMFhHNGdJQ0FnSUNCamIyNXpkQ0J6YUhWbVpteGxaRlpoYkhWbGN5QTlJSFpoYkhWbGN5NXpiR2xqWlNncE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJSE5vZFdabWJHVmtWbUZzZFdWekxteGxibWQwYUNBdElERTdJR2tnUGlBd095QnBMUzBwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYWlBOUlFMWhkR2d1Wm14dmIzSW9UV0YwYUM1eVlXNWtiMjBvS1NBcUlDaHBJQ3NnTVNrcE8xeHVJQ0FnSUNBZ0lDQmJjMmgxWm1ac1pXUldZV3gxWlhOYmFWMHNJSE5vZFdabWJHVmtWbUZzZFdWelcycGRYU0E5SUZ0emFIVm1abXhsWkZaaGJIVmxjMXRxWFN3Z2MyaDFabVpzWldSV1lXeDFaWE5iYVYxZE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQXZMMWRsSUc1bFpXUWdkRzhnWTJGc1kzVnNZWFJsSUhSb1pTQnRhVzVwYldGc0lIUm9jbVZ6YUc5c1pDQm1hWEp6ZEN4Y2JpQWdJQ0FnSUM4dmFXNGdiM0prWlhJZ2RHOGdaMlYwSUcxaGRISnBlQ0J6ZFdOb0lIUm9ZWFFnYVhRZ1pHOWxjeUJ1YjNRZ1pYaGpaV1ZrSUhSb1pTQnRZWGhwYlhWdElITnBlbVVnYjJZZ01VZENYRzRnSUNBZ0lDQXZMM2RsSUdoaGRtVWdNeUJ5WlhSMWNtNGdZWEp5WVhsekxDQmxZV05vSURRZ1ltbDBaWE1nY0dWeUlHVnNaVzFsYm5Rc0lITnZJR2xtSUhSb1pTQnRZWGhwYlhWdElITnBlbVVnYjJZZ2RHaGxJRzFoZEhKcGVDQnBjeUF4UjBJc1hHNGdJQ0FnSUNCamIyNXpkQ0J0WVhoZlUzQmhjbk5sWDIxaGRISnBlRjl6YVhwbElEMGdOekJmTURBd1h6QXdNRHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGRGTnBlbVVnUFNCMllXeDFaWE11YkdWdVozUm9JQ29nS0haaGJIVmxjeTVzWlc1bmRHZ2dMU0F4S1NBdklESTdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTm9kVzVyVTJsNlpTQTlJRTFoZEdndVpteHZiM0lvYldGMFUybDZaU0F2SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZEdWemRGTmxkRk5wZW1WUVpYSlhiM0pyWlhJZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWJXbHVLRzFoZEZOcGVtVWdMeUF4TURBd0xDQXhYekF3TUY4d01EQXBJQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwVUhKdmJXbHpaWE1nUFNCdVpYY2dRWEp5WVhrOFVISnZiV2x6WlR4N1pHbHpkR0Z1WTJVNklFWnNiMkYwTXpKQmNuSmhlWDArUGloMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENrN1hHNWNiaUFnSUNBZ0lDQWdabTl5SUNoc1pYUWdhV1I0SUQwZ01Ec2dhV1I0SUR3Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RN0lHbGtlQ3NyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkRkJ5YjIxcGMyVnpXMmxrZUYwZ1BTQnVaWGNnVUhKdmJXbHpaU2dvY21WemIyeDJaVmR2Y210bGNpd2djbVZxWldOMFYyOXlhMlZ5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6ZEdGeWRFbGtlQ0E5SUdsa2VDQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdWdVpFbGtlQ0E5SUdsa2VDQTlQVDBnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFnTFNBeElEOGdiV0YwVTJsNlpTQTZJQ2hwWkhnZ0t5QXhLU0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvY21WemFHOXNaRmR2Y210bGNuTmJhV1I0WFM1d2IzTjBUV1Z6YzJGblpTaDdkbUZzZFdWek9pQnphSFZtWm14bFpGWmhiSFZsY3l3Z2MzUmhjblJKWkhnc0lHVnVaRWxrZUN3Z2MyRnRjR3hsVEdWdVozUm9PaUIwWlhOMFUyVjBVMmw2WlZCbGNsZHZjbXRsY2l3Z1ptNU9ZVzFsTENCdmNIUnpmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUlhiM0pyWlhKelcybGtlRjB1YjI1dFpYTnpZV2RsSUQwZ0tIdGtZWFJoT2lCN1pYSnliM0lzSUdScGMzUmhibU5sZlgwcE9pQjJiMmxrSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHlaWE5vYjJ4a1YyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pYSnliM0lwSUhzZ2NtVnFaV04wVjI5eWEyVnlLR1Z5Y205eUtUc2dmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE52YkhabFYyOXlhMlZ5S0h0a2FYTjBZVzVqWlgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY21WemRXeDBjeUE5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0hSUWNtOXRhWE5sY3lrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdaMWJHeFRhWHBsSUQwZ2NtVnpkV3gwY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzS1NBOVBpQmhZMk1nS3lCMllXd3VaR2x6ZEdGdVkyVXViR1Z1WjNSb0xDQXdLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVWdQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLR1oxYkd4VGFYcGxLVHRjYmlBZ0lDQWdJQ0FnYkdWMElHOW1abk5sZENBOUlEQTdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnY21WeklHOW1JSEpsYzNWc2RITXBJSHRjYmlBZ0lDQWdJQ0FnSUNCa2FYTjBZVzVqWlM1elpYUW9jbVZ6TG1ScGMzUmhibU5sTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNBZ0lHOW1abk5sZENBclBTQnlaWE11WkdsemRHRnVZMlV1YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdScGMzUmhibU5sTG5OdmNuUW9LVHRjYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0JtY21GamRHbHZia2x1WkdWNElEMGdUV0YwYUM1bWJHOXZjaWh0WVhoZlUzQmhjbk5sWDIxaGRISnBlRjl6YVhwbElDOGdiV0YwVTJsNlpTQXFJR1JwYzNSaGJtTmxMbXhsYm1kMGFDazdYRzVjYmlBZ0lDQWdJQ0FnYkdWMElIUm9jbVZ6YUc5c1pDQTlJREVnTFNCa2FYTjBZVzVqWlZ0bWNtRmpkR2x2YmtsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrSUQwZ1RXRjBhQzV0WVhnb2RHaHlaWE5vYjJ4a0xDQXdMak1wTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdoeVpYTm9iMnhrTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlNrZ2UxeHVJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUlhiM0pyWlhKelB5NW1iM0pGWVdOb0tDaDNLU0E5UGlCM1B5NTBaWEp0YVc1aGRHVW9LU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1WlhKeWIzSW9aU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUF3TGpVN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nYzNSaGRHbGpJR05oYkdOVGVXNWpQRlErSUNoMllXeDFaWE02SUVGeWNtRjVQRlErSUh3Z1FYSnlZWGxNYVd0bFBGUStMQ0JtYms1aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3l3Z1pHbHpkR0Z1WTJWR2Jqb2dSblZ1WTNScGIyNHNJSFJvY21WemFHOXNaRG9nYm5WdFltVnlLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnBPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYWpvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR052Ym5OMElHUnBjM1JoYm1ObGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUd4bGRDQmpiblFnUFNBd08xeHVJQ0FnSUNBZ2JHVjBJRzFwSUQwZ01EdGNiaUFnSUNBZ0lHeGxkQ0J0YWlBOUlEQTdYRzRnSUNBZ0lDQmpiMjV6ZENCbWRXeHNVMmw2WlNBOUlIWmhiSFZsY3k1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6TG14bGJtZDBhQ0F0SURFcElDOGdNanRjYmlBZ0lDQWdJSGRvYVd4bElDaGpiblFnUENCbWRXeHNVMmw2WlNrZ2UxeHVJQ0FnSUNBZ0lDQXZMMk52Ym5OMElIWmhiSFZsSUQwZ2MyVnhNVXhwYzNSYmJXbGRJQ1ltSUhObGNURk1hWE4wVzIxcVhTQS9JR2hoYlcxcGJtY29jMlZ4TVV4cGMzUmJiV2xkTENCelpYRXhUR2x6ZEZ0dGFsMHBJRG9nTUR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVWdQU0FoYVhOT2FXd29kbUZzZFdWelcyMXBYU2tnSmlZZ0lXbHpUbWxzS0haaGJIVmxjMXR0YWwwcElEOWNiaUFnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaVVp1S0haaGJIVmxjMXR0YVYwc0lIWmhiSFZsYzF0dGFsMHBJRG9nTVR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJsdGFXeGhjbWwwZVNBOUlFOWlhbVZqZEM1MllXeDFaWE1vUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNcExuTnZiV1VvS0dFcElEMCtJR0VnUFQwOUlHWnVUbUZ0WlNrZ1B5Qm5aWFJUYVcxcGJHRnlhWFI1Um5KdmJVUnBjM1JoYm1ObEtIWmhiSFZsS1NBNklERWdMU0IyWVd4MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0hOcGJXbHNZWEpwZEhrZ1BqMGdkR2h5WlhOb2IyeGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FTNXdkWE5vS0cxcEtUdGNiaUFnSUNBZ0lDQWdJQ0JxTG5CMWMyZ29iV29wTzF4dUlDQWdJQ0FnSUNBZ0lHUnBjM1JoYm1ObGN5NXdkWE5vS0haaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamJuUXJLenRjYmlBZ0lDQWdJQ0FnYldvckt6dGNiaUFnSUNBZ0lDQWdhV1lnS0cxcUlEMDlQU0IyWVd4MVpYTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYldrckt6dGNiaUFnSUNBZ0lDQWdJQ0J0YWlBOUlHMXBJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUZ4dUlDQWdJQ0FnWTI5dWMzUWdhVUZ5Y21GNUlEMGdibVYzSUVsdWRETXlRWEp5WVhrb2FTazdYRzRnSUNBZ0lDQmpiMjV6ZENCcVFYSnlZWGtnUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2hxS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR1JwYzNSaGJtTmxRWEp5WVhrZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHUnBjM1JoYm1ObGN5azdYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQjdhVG9nYVVGeWNtRjVMQ0JxT2lCcVFYSnlZWGtzSUdScGMzUmhibU5sT2lCa2FYTjBZVzVqWlVGeWNtRjVmVHRjYmlBZ0lDQjlYRzU5SWwxOSIsImV4cG9ydCBmdW5jdGlvbiBnZXRLbm5HcmFwaChpLCBqLCBkaXN0YW5jZXMsIG5laWdoYm91cnMsIGRhdGFMZW5ndGgpIHtcbiAgICBmdW5jdGlvbiBpbnNlcnQoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKG51bSA+IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGsgPSBkaXN0YW5jZXNBci5sZW5ndGggLSAyO1xuICAgICAgICBmb3IgKGsgPSBkaXN0YW5jZXNBci5sZW5ndGggLSAyOyBrID49IDA7IGstLSkge1xuICAgICAgICAgICAgaWYgKG51bSA+IGRpc3RhbmNlc0FyW2tdKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGlzdGFuY2VzQXIuc3BsaWNlKGRpc3RhbmNlc0FyLmxlbmd0aCAtIDEsIDEpO1xuICAgICAgICBkaXN0YW5jZXNBci5zcGxpY2UoayArIDEsIDAsIG51bSk7XG4gICAgICAgIGluZGV4ZXMuc3BsaWNlKGluZGV4ZXMubGVuZ3RoIC0gMSwgMSk7XG4gICAgICAgIGluZGV4ZXMuc3BsaWNlKGsgKyAxLCAwLCBpbmRleCk7XG4gICAgfVxuICAgIGNvbnNvbGUudGltZSgna25uR3JhcGgnKTtcbiAgICBjb25zdCBrbm5JbmRleGVzID0gbmV3IEFycmF5KGRhdGFMZW5ndGgpLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBBcnJheShuZWlnaGJvdXJzKS5maWxsKDEpKTtcbiAgICBjb25zdCBrbm5EaXN0YW5jZXMgPSBuZXcgQXJyYXkoZGF0YUxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5KG5laWdoYm91cnMpLmZpbGwoMSkpO1xuICAgIGZvciAobGV0IGsgPSAwOyBrIDwgaS5sZW5ndGg7IGsrKykge1xuICAgICAgICBpbnNlcnQoa25uRGlzdGFuY2VzW2lba11dLCBrbm5JbmRleGVzW2lba11dLCBkaXN0YW5jZXNba10sIGpba10pO1xuICAgICAgICBpbnNlcnQoa25uRGlzdGFuY2VzW2pba11dLCBrbm5JbmRleGVzW2pba11dLCBkaXN0YW5jZXNba10sIGlba10pO1xuICAgIH1cbiAgICBjb25zb2xlLnRpbWVFbmQoJ2tubkdyYXBoJyk7XG4gICAgcmV0dXJuIHsga25uSW5kZXhlcywga25uRGlzdGFuY2VzIH07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0S25uR3JhcGhGcm9tRE0oZG0sIG5laWdoYm9ycywgZGF0YUxlbmd0aCkge1xuICAgIGZ1bmN0aW9uIGluc2VydChkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgICAgICBpZiAobnVtID4gZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgayA9IGRpc3RhbmNlc0FyLmxlbmd0aCAtIDI7XG4gICAgICAgIGZvciAoayA9IGRpc3RhbmNlc0FyLmxlbmd0aCAtIDI7IGsgPj0gMDsgay0tKSB7XG4gICAgICAgICAgICBpZiAobnVtID4gZGlzdGFuY2VzQXJba10pIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkaXN0YW5jZXNBci5zcGxpY2UoZGlzdGFuY2VzQXIubGVuZ3RoIC0gMSwgMSk7XG4gICAgICAgIGRpc3RhbmNlc0FyLnNwbGljZShrICsgMSwgMCwgbnVtKTtcbiAgICAgICAgaW5kZXhlcy5zcGxpY2UoaW5kZXhlcy5sZW5ndGggLSAxLCAxKTtcbiAgICAgICAgaW5kZXhlcy5zcGxpY2UoayArIDEsIDAsIGluZGV4KTtcbiAgICB9XG4gICAgY29uc29sZS50aW1lKCdrbm5HcmFwaCcpO1xuICAgIGNvbnN0IGtubkluZGV4ZXMgPSBuZXcgQXJyYXkoZGF0YUxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5KG5laWdoYm9ycykuZmlsbCgxKSk7XG4gICAgY29uc3Qga25uRGlzdGFuY2VzID0gbmV3IEFycmF5KGRhdGFMZW5ndGgpLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBBcnJheShuZWlnaGJvcnMpLmZpbGwoMSkpO1xuICAgIGxldCByb3cgPSAwO1xuICAgIGxldCBjb2wgPSAxO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZG0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaW5zZXJ0KGtubkRpc3RhbmNlc1tyb3ddLCBrbm5JbmRleGVzW3Jvd10sIGRtW2ldLCBjb2wpO1xuICAgICAgICBpbnNlcnQoa25uRGlzdGFuY2VzW2NvbF0sIGtubkluZGV4ZXNbY29sXSwgZG1baV0sIHJvdyk7XG4gICAgICAgIGNvbCsrO1xuICAgICAgICBpZiAoY29sID49IGRhdGFMZW5ndGgpIHtcbiAgICAgICAgICAgIHJvdysrO1xuICAgICAgICAgICAgY29sID0gcm93ICsgMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zb2xlLnRpbWVFbmQoJ2tubkdyYXBoJyk7XG4gICAgcmV0dXJuIHsga25uSW5kZXhlcywga25uRGlzdGFuY2VzIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhMjV1UjNKaGNHZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKcmJtNUhjbUZ3YUM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkZRU3hOUVVGTkxGVkJRVlVzVjBGQlZ5eERRVUZETEVOQlFXRXNSVUZCUlN4RFFVRmhMRVZCUVVVc1UwRkJkVUlzUlVGRE4wVXNWVUZCYTBJc1JVRkJSU3hWUVVGclFqdEpRVU5zUXl4VFFVRlRMRTFCUVUwc1EwRkJReXhYUVVGeFFpeEZRVUZGTEU5QlFXbENMRVZCUVVVc1IwRkJWeXhGUVVGRkxFdEJRV0U3VVVGRGFFWXNTVUZCU1N4SFFVRkhMRWRCUVVjc1YwRkJWeXhEUVVGRExGZEJRVmNzUTBGQlF5eE5RVUZOTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN1dVRkRla01zVDBGQlR6dFRRVU5XTzFGQlEwUXNTVUZCU1N4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETDBJc1MwRkJTU3hEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTjZReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN1owSkJRM1JDTEUxQlFVMDdZVUZEVkR0VFFVTktPMUZCUTBRc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU01UXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRkRU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTnNReXhEUVVGRE8wbEJSMFFzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRVHRKUVVONFFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRlZCUVZVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKSExFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFWTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGZGtjc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZETDBJc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMnBGTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTndSVHRKUVVWRUxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1NVRkROVUlzVDBGQlR5eEZRVUZETEZWQlFWVXNSVUZCUlN4WlFVRlpMRVZCUVVNc1EwRkJRenRCUVVNeFF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2xDUVVGcFFpeERRVUZETEVWQlFXZENMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeFZRVUZyUWp0SlFVTnlSaXhUUVVGVExFMUJRVTBzUTBGQlF5eFhRVUZ4UWl4RlFVRkZMRTlCUVdsQ0xFVkJRVVVzUjBGQlZ5eEZRVUZGTEV0QlFXRTdVVUZEYUVZc1NVRkJTU3hIUVVGSExFZEJRVWNzVjBGQlZ5eERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRWRCUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRGVrTXNUMEZCVHp0VFFVTldPMUZCUTBRc1NVRkJTU3hEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRMMElzUzBGQlNTeERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVONlF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3WjBKQlEzUkNMRTFCUVUwN1lVRkRWRHRUUVVOS08xRkJRMFFzVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTVReXhYUVVGWExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyaERMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVOc1F5eERRVUZETzBsQlIwUXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlFUdEpRVU40UWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGVExGTkJRVk1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0JITEUxQlFVMHNXVUZCV1N4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVZNc1UwRkJVeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZkRWNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTFvc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlExb3NTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRmFFTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNaRUxFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU4yUkN4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOT0xFbEJRVWtzUjBGQlJ5eEpRVUZKTEZWQlFWVXNSVUZCUlR0WlFVTnVRaXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU5PTEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRMnBDTzB0QlEwbzdTVUZGUkN4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBsQlF6VkNMRTlCUVU4c1JVRkJReXhWUVVGVkxFVkJRVVVzV1VGQldTeEZRVUZETEVOQlFVTTdRVUZEZEVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWx4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBTMjV1UjNKaGNHZ29hVG9nU1c1ME16SkJjbkpoZVN3Z2Fqb2dTVzUwTXpKQmNuSmhlU3dnWkdsemRHRnVZMlZ6T2lCR2JHOWhkRE15UVhKeVlYa3NYRzRnSUNBZ2JtVnBaMmhpYjNWeWN6b2diblZ0WW1WeUxDQmtZWFJoVEdWdVozUm9PaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQWdJQ0FnWm5WdVkzUnBiMjRnYVc1elpYSjBLR1JwYzNSaGJtTmxjMEZ5T2lCdWRXMWlaWEpiWFN3Z2FXNWtaWGhsY3pvZ2JuVnRZbVZ5VzEwc0lHNTFiVG9nYm5WdFltVnlMQ0JwYm1SbGVEb2diblZ0WW1WeUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iblZ0SUQ0Z1pHbHpkR0Z1WTJWelFYSmJaR2x6ZEdGdVkyVnpRWEl1YkdWdVozUm9MVEZkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJR3NnUFNCa2FYTjBZVzVqWlhOQmNpNXNaVzVuZEdnZ0xTQXlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlLR3NnUFNCa2FYTjBZVzVqWlhOQmNpNXNaVzVuZEdnZ0xTQXlPeUJySUQ0OUlEQTdJR3N0TFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1ZFcwZ1BpQmthWE4wWVc1alpYTkJjbHRyWFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaWE5CY2k1emNHeHBZMlVvWkdsemRHRnVZMlZ6UVhJdWJHVnVaM1JvSUMwZ01Td2dNU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmthWE4wWVc1alpYTkJjaTV6Y0d4cFkyVW9heXN4TENBd0xDQnVkVzBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzVrWlhobGN5NXpjR3hwWTJVb2FXNWtaWGhsY3k1c1pXNW5kR2dnTFNBeExDQXhLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Y0WlhNdWMzQnNhV05sS0dzck1Td2dNQ3dnYVc1a1pYZ3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmNibHh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMblJwYldVb0oydHVia2R5WVhCb0p5bGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2EyNXVTVzVrWlhobGN5QTlJRzVsZHlCQmNuSmhlU2hrWVhSaFRHVnVaM1JvS1M1bWFXeHNLRzUxYkd3cExtMWhjQ2dvS1NBOVBpQnVaWGNnUVhKeVlYazhiblZ0WW1WeVBpaHVaV2xuYUdKdmRYSnpLUzVtYVd4c0tERXBLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhMjV1UkdsemRHRnVZMlZ6SUQwZ2JtVjNJRUZ5Y21GNUtHUmhkR0ZNWlc1bmRHZ3BMbVpwYkd3b2JuVnNiQ2t1YldGd0tDZ3BJRDArSUc1bGR5QkJjbkpoZVR4dWRXMWlaWEkrS0c1bGFXZG9ZbTkxY25NcExtWnBiR3dvTVNrcE8xeHVYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR3NnUFNBd095QnJJRHdnYVM1c1pXNW5kR2c3SUdzckt5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXNXpaWEowS0d0dWJrUnBjM1JoYm1ObGMxdHBXMnRkWFN3Z2EyNXVTVzVrWlhobGMxdHBXMnRkWFN3Z1pHbHpkR0Z1WTJWelcydGRMQ0JxVzJ0ZEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdWMyVnlkQ2hyYm01RWFYTjBZVzVqWlhOYmFsdHJYVjBzSUd0dWJrbHVaR1Y0WlhOYmFsdHJYVjBzSUdScGMzUmhibU5sYzF0clhTd2dhVnRyWFNrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMblJwYldWRmJtUW9KMnR1YmtkeVlYQm9KeWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3YTI1dVNXNWtaWGhsY3l3Z2EyNXVSR2x6ZEdGdVkyVnpmVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRXR1YmtkeVlYQm9Sbkp2YlVSTktHUnRPaUJHYkc5aGRETXlRWEp5WVhrc0lHNWxhV2RvWW05eWN6b2diblZ0WW1WeUxDQmtZWFJoVEdWdVozUm9PaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQm1kVzVqZEdsdmJpQnBibk5sY25Rb1pHbHpkR0Z1WTJWelFYSTZJRzUxYldKbGNsdGRMQ0JwYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYU3dnYm5WdE9pQnVkVzFpWlhJc0lHbHVaR1Y0T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLRzUxYlNBK0lHUnBjM1JoYm1ObGMwRnlXMlJwYzNSaGJtTmxjMEZ5TG14bGJtZDBhQzB4WFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUd4bGRDQnJJRDBnWkdsemRHRnVZMlZ6UVhJdWJHVnVaM1JvSUMwZ01qdGNiaUFnSUNBZ0lDQWdabTl5S0dzZ1BTQmthWE4wWVc1alpYTkJjaTVzWlc1bmRHZ2dMU0F5T3lCcklENDlJREE3SUdzdExTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzUxYlNBK0lHUnBjM1JoYm1ObGMwRnlXMnRkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWkdsemRHRnVZMlZ6UVhJdWMzQnNhV05sS0dScGMzUmhibU5sYzBGeUxteGxibWQwYUNBdElERXNJREVwTzF4dUlDQWdJQ0FnSUNCa2FYTjBZVzVqWlhOQmNpNXpjR3hwWTJVb2F5c3hMQ0F3TENCdWRXMHBPMXh1SUNBZ0lDQWdJQ0JwYm1SbGVHVnpMbk53YkdsalpTaHBibVJsZUdWekxteGxibWQwYUNBdElERXNJREVwTzF4dUlDQWdJQ0FnSUNCcGJtUmxlR1Z6TG5Od2JHbGpaU2hyS3pFc0lEQXNJR2x1WkdWNEtUdGNiaUFnSUNCOVhHNGdJQ0FnSUNBZ0lGeHVYRzRnSUNBZ1kyOXVjMjlzWlM1MGFXMWxLQ2RyYm01SGNtRndhQ2NwWEc0Z0lDQWdZMjl1YzNRZ2EyNXVTVzVrWlhobGN5QTlJRzVsZHlCQmNuSmhlU2hrWVhSaFRHVnVaM1JvS1M1bWFXeHNLRzUxYkd3cExtMWhjQ2dvS1NBOVBpQnVaWGNnUVhKeVlYazhiblZ0WW1WeVBpaHVaV2xuYUdKdmNuTXBMbVpwYkd3b01Ta3BPMXh1SUNBZ0lHTnZibk4wSUd0dWJrUnBjM1JoYm1ObGN5QTlJRzVsZHlCQmNuSmhlU2hrWVhSaFRHVnVaM1JvS1M1bWFXeHNLRzUxYkd3cExtMWhjQ2dvS1NBOVBpQnVaWGNnUVhKeVlYazhiblZ0WW1WeVBpaHVaV2xuYUdKdmNuTXBMbVpwYkd3b01Ta3BPMXh1WEc0Z0lDQWdiR1YwSUhKdmR5QTlJREE3WEc0Z0lDQWdiR1YwSUdOdmJDQTlJREU3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JrYlM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JjYmlBZ0lDQWdJQ0FnYVc1elpYSjBLR3R1YmtScGMzUmhibU5sYzF0eWIzZGRMQ0JyYm01SmJtUmxlR1Z6VzNKdmQxMHNJR1J0VzJsZExDQmpiMndwTzF4dUlDQWdJQ0FnSUNCcGJuTmxjblFvYTI1dVJHbHpkR0Z1WTJWelcyTnZiRjBzSUd0dWJrbHVaR1Y0WlhOYlkyOXNYU3dnWkcxYmFWMHNJSEp2ZHlrN1hHNGdJQ0FnSUNBZ0lHTnZiQ3NyTzF4dUlDQWdJQ0FnSUNCcFppQW9ZMjlzSUQ0OUlHUmhkR0ZNWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISnZkeXNyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjlzSUQwZ2NtOTNJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ2ZTQWdJQ0JjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6YjJ4bExuUnBiV1ZGYm1Rb0oydHVia2R5WVhCb0p5azdYRzRnSUNBZ2NtVjBkWEp1SUh0cmJtNUpibVJsZUdWekxDQnJibTVFYVhOMFlXNWpaWE45TzF4dWZTSmRmUT09IiwiaW1wb3J0IHsgRGltZW5zaW9uYWxpdHlSZWR1Y2VyIH0gZnJvbSAnLi4vcmVkdWNlLWRpbWVuc2lvbmFsaXR5Jztcbi8qKlxuICogV29ya2VyIHRocmVhZCByZWNlaXZpbmcgZGF0YSBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge2FueVtdfSBjb2x1bW5EYXRhIFNhbXBsZXMgdG8gcHJvY2Vzcy5cbiAqIEBwYXJhbSB7S25vd25NZXRob2RzfSBtZXRob2QgRW1iZWRkaW5nIG1ldGhvZC5cbiAqIEBwYXJhbSB7S25vd25NZXRyaWNzfSBtZWFzdXJlIERpc3RhbmNlIG1ldHJpYy5cbiAqIEBwYXJhbSB7YW55fSBvcHRpb25zIE9wdGlvbnMgdG8gcGFzcyB0byBhbGdvcml0aG0uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHBhcmFsbGVsRGlzdGFuY2VXb3JrZXJzIFdoZXRoZXIgdG8gdXNlIHBhcmFsbGVsIGRpc3RhbmNlIHdvcmtlcnMuXG4gKiBAcmV0dXJuIHthbnl9IEVtYmVkZGluZyAoYW5kIGRpc3RhbmNlIG1hdHJpeCB3aGVyZSBhcHBsaWNhYmxlKS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gb25NZXNzYWdlKGNvbHVtbkRhdGEsIG1ldGhvZCwgbWVhc3VyZSwgb3B0aW9ucywgcGFyYWxsZWxEaXN0YW5jZVdvcmtlcnMpIHtcbiAgICBjb25zdCByZWR1Y2VyID0gbmV3IERpbWVuc2lvbmFsaXR5UmVkdWNlcihjb2x1bW5EYXRhLCBtZXRob2QsIG1lYXN1cmUsIHsgLi4ub3B0aW9ucywgcHJvZ3Jlc3NGdW5jIH0pO1xuICAgIHJldHVybiBhd2FpdCByZWR1Y2VyLnRyYW5zZm9ybSh0cnVlLCBwYXJhbGxlbERpc3RhbmNlV29ya2Vycyk7XG59XG5hc3luYyBmdW5jdGlvbiBwcm9ncmVzc0Z1bmMoZXBvY2hOdW0sIGVwb2Noc0xlbmd0aCwgZW1iZWRkaW5nKSB7XG4gICAgaWYgKGVwb2NoTnVtICUgNSA9PT0gMClcbiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7IGVwb2NoTnVtLCBlcG9jaHNMZW5ndGgsIGVtYmVkZGluZyB9KTtcbn1cbnNlbGYub25tZXNzYWdlID0gYXN5bmMgKHsgZGF0YTogeyBjb2x1bW5EYXRhLCBtZXRob2QsIG1lYXN1cmUsIG9wdGlvbnMsIHBhcmFsbGVsRGlzdGFuY2VXb3JrZXJzIH0gfSkgPT4ge1xuICAgIGxldCBkYXRhO1xuICAgIHRyeSB7XG4gICAgICAgIGRhdGEgPSBhd2FpdCBvbk1lc3NhZ2UoY29sdW1uRGF0YSwgbWV0aG9kLCBtZWFzdXJlLCBvcHRpb25zLCBwYXJhbGxlbERpc3RhbmNlV29ya2Vycyk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGRhdGEgPSB7IGVycm9yOiBlIH07XG4gICAgfVxuICAgIHNlbGYucG9zdE1lc3NhZ2Uoe1xuICAgICAgICBlcnJvcjogZGF0YS5lcnJvcixcbiAgICAgICAgZGlzdGFuY2U6IGRhdGEuZGlzdGFuY2UsXG4gICAgICAgIGVtYmVkZGluZzogZGF0YS5lbWJlZGRpbmcsXG4gICAgfSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdsdFpXNXphVzl1WVd4cGRIa3RjbVZrZFdObGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW1ScGJXVnVjMmx2Ym1Gc2FYUjVMWEpsWkhWalpYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhGUVVGRExIRkNRVUZ4UWl4RlFVRmxMRTFCUVUwc01FSkJRVEJDTEVOQlFVTTdRVUZITjBVN096czdPenM3T3p0SFFWTkhPMEZCUTBnc1MwRkJTeXhWUVVGVkxGTkJRVk1zUTBGQlF5eFZRVUZwUWl4RlFVRkZMRTFCUVc5Q0xFVkJRVVVzVDBGQmNVSXNSVUZEY2tZc1QwRkJZU3hGUVVGRkxIVkNRVUZwUXp0SlFVTm9SQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEhGQ1FVRnhRaXhEUVVOMlF5eFZRVUZWTEVWQlExWXNUVUZCVFN4RlFVTk9MRTlCUVU4c1JVRkRVQ3hGUVVGRExFZEJRVWNzVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUXl4RFFVTXpRaXhEUVVGRE8wbEJRMFlzVDBGQlR5eE5RVUZOTEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hGUVVGRkxIVkNRVUYxUWl4RFFVRkRMRU5CUVVNN1FVRkRhRVVzUTBGQlF6dEJRVVZFTEV0QlFVc3NWVUZCVlN4WlFVRlpMRU5CUVVVc1VVRkJaMElzUlVGQlJTeFpRVUZ2UWl4RlFVRkZMRk5CUVhGQ08wbEJRM2hHTEVsQlFVa3NVVUZCVVN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM0JDTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJReXhSUVVGUkxFVkJRVVVzV1VGQldTeEZRVUZGTEZOQlFWTXNSVUZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNVVFzUTBGQlF6dEJRVVZFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1MwRkJTeXhGUVVGRkxFVkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVTXNWVUZCVlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzVDBGQlR5eEZRVUZGTEhWQ1FVRjFRaXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZGTzBsQlEycEhMRWxCUVVrc1NVRkJiMFFzUTBGQlF6dEpRVU42UkN4SlFVRkpPMUZCUTBZc1NVRkJTU3hIUVVGSExFMUJRVTBzVTBGQlV5eERRVUZETEZWQlFWVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeDFRa0ZCZFVJc1EwRkJReXhEUVVGRE8wdEJRM1pHTzBsQlFVTXNUMEZCVHl4RFFVRk5MRVZCUVVVN1VVRkRaaXhKUVVGSkxFZEJRVWNzUlVGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkRMRU5CUVVNN1MwRkRia0k3U1VGRFJDeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRPMUZCUTJZc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTzFGQlEycENMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVUdFJRVU4yUWl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk03UzBGRE1VSXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdEVhVzFsYm5OcGIyNWhiR2wwZVZKbFpIVmpaWElzSUV0dWIzZHVUV1YwYUc5a2MzMGdabkp2YlNBbkxpNHZjbVZrZFdObExXUnBiV1Z1YzJsdmJtRnNhWFI1Snp0Y2JtbHRjRzl5ZENCN1MyNXZkMjVOWlhSeWFXTnpmU0JtY205dElDY3VMaTkwZVhCbFpDMXRaWFJ5YVdOekwzUjVjR1ZrTFcxbGRISnBZM01uTzF4dVhHNHZLaXBjYmlBcUlGZHZjbXRsY2lCMGFISmxZV1FnY21WalpXbDJhVzVuSUdSaGRHRWdablZ1WTNScGIyNHVYRzRnS2x4dUlDb2dRSEJoY21GdElIdGhibmxiWFgwZ1kyOXNkVzF1UkdGMFlTQlRZVzF3YkdWeklIUnZJSEJ5YjJObGMzTXVYRzRnS2lCQWNHRnlZVzBnZTB0dWIzZHVUV1YwYUc5a2MzMGdiV1YwYUc5a0lFVnRZbVZrWkdsdVp5QnRaWFJvYjJRdVhHNGdLaUJBY0dGeVlXMGdlMHR1YjNkdVRXVjBjbWxqYzMwZ2JXVmhjM1Z5WlNCRWFYTjBZVzVqWlNCdFpYUnlhV011WEc0Z0tpQkFjR0Z5WVcwZ2UyRnVlWDBnYjNCMGFXOXVjeUJQY0hScGIyNXpJSFJ2SUhCaGMzTWdkRzhnWVd4bmIzSnBkR2h0TGx4dUlDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQndZWEpoYkd4bGJFUnBjM1JoYm1ObFYyOXlhMlZ5Y3lCWGFHVjBhR1Z5SUhSdklIVnpaU0J3WVhKaGJHeGxiQ0JrYVhOMFlXNWpaU0IzYjNKclpYSnpMbHh1SUNvZ1FISmxkSFZ5YmlCN1lXNTVmU0JGYldKbFpHUnBibWNnS0dGdVpDQmthWE4wWVc1alpTQnRZWFJ5YVhnZ2QyaGxjbVVnWVhCd2JHbGpZV0pzWlNrdVhHNGdLaTljYm1GemVXNWpJR1oxYm1OMGFXOXVJRzl1VFdWemMyRm5aU2hqYjJ4MWJXNUVZWFJoT2lCaGJubGJYU3dnYldWMGFHOWtPaUJMYm05M2JrMWxkR2h2WkhNc0lHMWxZWE4xY21VNklFdHViM2R1VFdWMGNtbGpjeXhjYmlBZ2IzQjBhVzl1Y3o4NklHRnVlU3dnY0dGeVlXeHNaV3hFYVhOMFlXNWpaVmR2Y210bGNuTS9PaUJpYjI5c1pXRnVLVG9nVUhKdmJXbHpaVHg3WkdsemRHRnVZMlUvT2lCaGJua3NJR1Z0WW1Wa1pHbHVaejg2SUdGdWVYMCtJSHRjYmlBZ1kyOXVjM1FnY21Wa2RXTmxjaUE5SUc1bGR5QkVhVzFsYm5OcGIyNWhiR2wwZVZKbFpIVmpaWElvWEc0Z0lDQWdZMjlzZFcxdVJHRjBZU3hjYmlBZ0lDQnRaWFJvYjJRc1hHNGdJQ0FnYldWaGMzVnlaU3hjYmlBZ0lDQjdMaTR1YjNCMGFXOXVjeXdnY0hKdlozSmxjM05HZFc1amZTeGNiaUFnS1R0Y2JpQWdjbVYwZFhKdUlHRjNZV2wwSUhKbFpIVmpaWEl1ZEhKaGJuTm1iM0p0S0hSeWRXVXNJSEJoY21Gc2JHVnNSR2x6ZEdGdVkyVlhiM0pyWlhKektUdGNibjFjYmx4dVlYTjVibU1nWm5WdVkzUnBiMjRnY0hKdlozSmxjM05HZFc1aklDaGxjRzlqYUU1MWJUb2diblZ0WW1WeUxDQmxjRzlqYUhOTVpXNW5kR2c2SUc1MWJXSmxjaXdnWlcxaVpXUmthVzVuT2lCdWRXMWlaWEpiWFZ0ZEtTQjdYRzRnSUdsbUlDaGxjRzlqYUU1MWJTQWxJRFVnUFQwOUlEQXBYRzRnSUNBZ2MyVnNaaTV3YjNOMFRXVnpjMkZuWlNoN1pYQnZZMmhPZFcwc0lHVndiMk5vYzB4bGJtZDBhQ3dnWlcxaVpXUmthVzVuZlNrN1hHNTlYRzVjYm5ObGJHWXViMjV0WlhOellXZGxJRDBnWVhONWJtTWdLSHRrWVhSaE9pQjdZMjlzZFcxdVJHRjBZU3dnYldWMGFHOWtMQ0J0WldGemRYSmxMQ0J2Y0hScGIyNXpMQ0J3WVhKaGJHeGxiRVJwYzNSaGJtTmxWMjl5YTJWeWMzMTlLU0E5UGlCN1hHNGdJR3hsZENCa1lYUmhPaUI3WlhKeWIzSS9PaUJoYm5rc0lHUnBjM1JoYm1ObFB6b2dZVzU1TENCbGJXSmxaR1JwYm1jL09pQmhibmw5TzF4dUlDQjBjbmtnZTF4dUlDQWdJR1JoZEdFZ1BTQmhkMkZwZENCdmJrMWxjM05oWjJVb1kyOXNkVzF1UkdGMFlTd2diV1YwYUc5a0xDQnRaV0Z6ZFhKbExDQnZjSFJwYjI1ekxDQndZWEpoYkd4bGJFUnBjM1JoYm1ObFYyOXlhMlZ5Y3lrN1hHNGdJSDBnWTJGMFkyZ2dLR1U2SUdGdWVTa2dlMXh1SUNBZ0lHUmhkR0VnUFNCN1pYSnliM0k2SUdWOU8xeHVJQ0I5WEc0Z0lITmxiR1l1Y0c5emRFMWxjM05oWjJVb2UxeHVJQ0FnSUdWeWNtOXlPaUJrWVhSaExtVnljbTl5TEZ4dUlDQWdJR1JwYzNSaGJtTmxPaUJrWVhSaExtUnBjM1JoYm1ObExGeHVJQ0FnSUdWdFltVmtaR2x1WnpvZ1pHRjBZUzVsYldKbFpHUnBibWNzWEc0Z0lIMHBPMXh1ZlR0Y2JpSmRmUT09IiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRTTkUgPSB2b2lkIDA7XG52YXIgdHNuZV8xID0gcmVxdWlyZShcIi4vdHNuZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRTTkVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRzbmVfMS5UU05FOyB9IH0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRTTkUgPSB2b2lkIDA7XG5jbGFzcyBUU05FIHtcbiAgICBjb25zdHJ1Y3RvcihvcHQpIHtcbiAgICAgICAgLy8gcmV0dXJuIDAgbWVhbiB1bml0IHN0YW5kYXJkIGRldmlhdGlvbiByYW5kb20gbnVtYmVyXG4gICAgICAgIHRoaXMucmV0dXJuViA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZWYWx1ZSA9IDAuMDtcbiAgICAgICAgdGhpcy5pdGVyID0gMDtcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9O1xuICAgICAgICB0aGlzLnBlcnBsZXhpdHkgPSB0aGlzLmdldG9wdChvcHQsICdwZXJwbGV4aXR5JywgMzApOyAvLyBlZmZlY3RpdmUgbnVtYmVyIG9mIG5lYXJlc3QgbmVpZ2hib3JzXG4gICAgICAgIHRoaXMuZGltID0gdGhpcy5nZXRvcHQob3B0LCAnZGltJywgMik7IC8vIGJ5IGRlZmF1bHQgMi1EIHRTTkVcbiAgICAgICAgdGhpcy5lcHNpbG9uID0gdGhpcy5nZXRvcHQob3B0LCAnZXBzaWxvbicsIDEwKTsgLy8gbGVhcm5pbmcgcmF0ZVxuICAgIH1cbiAgICBhc3NlcnQoY29uZGl0aW9uLCBtZXNzYWdlKSB7XG4gICAgICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBtZXNzYWdlIHx8ICdBc3NlcnRpb24gZmFpbGVkJztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBzeW50YXggc3VnYXJcbiAgICBnZXRvcHQob3B0LCBmaWVsZCwgZGVmYXVsdHZhbCkge1xuICAgICAgICBpZiAob3B0Lmhhc093blByb3BlcnR5KGZpZWxkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9wdFtmaWVsZF07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdHZhbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnYXVzc1JhbmRvbSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmV0dXJuVikge1xuICAgICAgICAgICAgdGhpcy5yZXR1cm5WID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52VmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdSA9IDIgKiBNYXRoLnJhbmRvbSgpIC0gMTtcbiAgICAgICAgY29uc3QgdiA9IDIgKiBNYXRoLnJhbmRvbSgpIC0gMTtcbiAgICAgICAgY29uc3QgciA9IHUgKiB1ICsgdiAqIHY7XG4gICAgICAgIGlmIChyID09PSAwIHx8IHIgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nYXVzc1JhbmRvbSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGMgPSBNYXRoLnNxcnQoLTIgKiBNYXRoLmxvZyhyKSAvIHIpO1xuICAgICAgICB0aGlzLnZWYWx1ZSA9IHYgKiBjOyAvLyBjYWNoZSB0aGlzIGZvciBuZXh0IGZ1bmN0aW9uIGNhbGwgZm9yIGVmZmljaWVuY3lcbiAgICAgICAgdGhpcy5yZXR1cm5WID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHUgKiBjO1xuICAgIH1cbiAgICAvLyByZXR1cm4gcmFuZG9tIG5vcm1hbCBudW1iZXJcbiAgICByYW5kbihtdSwgc3RkKSB7IHJldHVybiBtdSArIHRoaXMuZ2F1c3NSYW5kb20oKSAqIHN0ZDsgfVxuICAgIC8vIHV0aWxpdGl0eSB0aGF0IGNyZWF0ZXMgY29udGlndW91cyB2ZWN0b3Igb2YgemVyb3Mgb2Ygc2l6ZSBuXG4gICAgemVyb3Mobikge1xuICAgICAgICBpZiAodHlwZW9mIChuKSA9PT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4obikpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIEFycmF5QnVmZmVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgLy8gbGFja2luZyBicm93c2VyIHN1cHBvcnRcbiAgICAgICAgICAgIGNvbnN0IGFyciA9IG5ldyBBcnJheShuKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYXJyW2ldID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcnI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0NjRBcnJheShuKTsgLy8gdHlwZWQgYXJyYXlzIGFyZSBmYXN0ZXJcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyB1dGlsaXR5IHRoYXQgcmV0dXJucyAyZCBhcnJheSBmaWxsZWQgd2l0aCByYW5kb20gbnVtYmVyc1xuICAgIC8vIG9yIHdpdGggdmFsdWUgcywgaWYgcHJvdmlkZWRcbiAgICByYW5kbjJkKG4sIGQsIHMpIHtcbiAgICAgICAgY29uc3QgdXNlcyA9IHR5cGVvZiBzICE9PSAndW5kZWZpbmVkJztcbiAgICAgICAgY29uc3QgeCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgeGhlcmUgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgeGhlcmUucHVzaChzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHhoZXJlLnB1c2godGhpcy5yYW5kbigwLjAsIDFlLTQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB4LnB1c2goeGhlcmUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4O1xuICAgIH1cbiAgICAvLyBjb21wdXRlIEwyIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlY3RvcnNcbiAgICBMMih4MSwgeDIpIHtcbiAgICAgICAgY29uc3QgRCA9IHgxLmxlbmd0aDtcbiAgICAgICAgbGV0IGQgPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IEQ7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgeDFpID0geDFbaV07XG4gICAgICAgICAgICBjb25zdCB4MmkgPSB4MltpXTtcbiAgICAgICAgICAgIGQgKz0gKHgxaSAtIHgyaSkgKiAoeDFpIC0geDJpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZDtcbiAgICB9XG4gICAgLy8gY29tcHV0ZSBwYWlyd2lzZSBkaXN0YW5jZSBpbiBhbGwgdmVjdG9ycyBpbiBYXG4gICAgeHRvZChYKSB7XG4gICAgICAgIGNvbnN0IE4gPSBYLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGlzdCA9IHRoaXMuemVyb3MoTiAqIE4pOyAvLyBhbGxvY2F0ZSBjb250aWd1b3VzIGFycmF5XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTjsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBOOyBqKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gdGhpcy5MMihYW2ldLCBYW2pdKTtcbiAgICAgICAgICAgICAgICBkaXN0W2kgKiBOICsgal0gPSBkO1xuICAgICAgICAgICAgICAgIGRpc3RbaiAqIE4gKyBpXSA9IGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpc3Q7XG4gICAgfVxuICAgIC8vIGNvbXB1dGUgKHBfe2l8an0gKyBwX3tqfGl9KS8oMm4pXG4gICAgZDJwKEQsIHBlcnBsZXhpdHksIHRvbCkge1xuICAgICAgICBjb25zdCBuZiA9IE1hdGguc3FydChELmxlbmd0aCk7IC8vIHRoaXMgYmV0dGVyIGJlIGFuIGludGVnZXJcbiAgICAgICAgY29uc3QgbiA9IE1hdGguZmxvb3IobmYpO1xuICAgICAgICB0aGlzLmFzc2VydChuID09PSBuZiwgJ0Qgc2hvdWxkIGhhdmUgc3F1YXJlIG51bWJlciBvZiBlbGVtZW50cy4nKTtcbiAgICAgICAgY29uc3QgaFRhcmdldCA9IE1hdGgubG9nKHBlcnBsZXhpdHkpOyAvLyB0YXJnZXQgZW50cm9weSBvZiBkaXN0cmlidXRpb25cbiAgICAgICAgY29uc3QgUCA9IHRoaXMuemVyb3MobiAqIG4pOyAvLyB0ZW1wb3JhcnkgcHJvYmFiaWxpdHkgbWF0cml4XG4gICAgICAgIGNvbnN0IHByb3cgPSB0aGlzLnplcm9zKG4pOyAvLyBhIHRlbXBvcmFyeSBzdG9yYWdlIGNvbXBhcnRtZW50XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgYmV0YW1pbiA9IC1JbmZpbml0eTtcbiAgICAgICAgICAgIGxldCBiZXRhbWF4ID0gSW5maW5pdHk7XG4gICAgICAgICAgICBsZXQgYmV0YSA9IDE7IC8vIGluaXRpYWwgdmFsdWUgb2YgcHJlY2lzaW9uXG4gICAgICAgICAgICBsZXQgZG9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgbWF4dHJpZXMgPSA1MDtcbiAgICAgICAgICAgIC8vIHBlcmZvcm0gYmluYXJ5IHNlYXJjaCB0byBmaW5kIGEgc3VpdGFibGUgcHJlY2lzaW9uIGJldGFcbiAgICAgICAgICAgIC8vIHNvIHRoYXQgdGhlIGVudHJvcHkgb2YgdGhlIGRpc3RyaWJ1dGlvbiBpcyBhcHByb3ByaWF0ZVxuICAgICAgICAgICAgbGV0IG51bSA9IDA7XG4gICAgICAgICAgICB3aGlsZSAoIWRvbmUpIHtcbiAgICAgICAgICAgICAgICAvL2RlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgZW50cm9weSBhbmQga2VybmVsIHJvdyB3aXRoIGJldGEgcHJlY2lzaW9uXG4gICAgICAgICAgICAgICAgbGV0IHBzdW0gPSAwLjA7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBuOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBqID0gTWF0aC5leHAoLURbaSAqIG4gKyBqXSAqIGJldGEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gaikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGogPSAwO1xuICAgICAgICAgICAgICAgICAgICB9IC8vIHdlIGRvbnQgY2FyZSBhYm91dCBkaWFnb25hbHNcbiAgICAgICAgICAgICAgICAgICAgcHJvd1tqXSA9IHBqO1xuICAgICAgICAgICAgICAgICAgICBwc3VtICs9IHBqO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBub3JtYWxpemUgcCBhbmQgY29tcHV0ZSBlbnRyb3B5XG4gICAgICAgICAgICAgICAgbGV0IG5IZXJlID0gMC4wO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbjsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwajtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBzdW0gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBqID0gMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBqID0gcHJvd1tqXSAvIHBzdW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcHJvd1tqXSA9IHBqO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGogPiAxZS03KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuSGVyZSAtPSBwaiAqIE1hdGgubG9nKHBqKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBhZGp1c3QgYmV0YSBiYXNlZCBvbiByZXN1bHRcbiAgICAgICAgICAgICAgICBpZiAobkhlcmUgPiBoVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVudHJvcHkgd2FzIHRvbyBoaWdoIChkaXN0cmlidXRpb24gdG9vIGRpZmZ1c2UpXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gaW5jcmVhc2UgdGhlIHByZWNpc2lvbiBmb3IgbW9yZSBwZWFreSBkaXN0cmlidXRpb25cbiAgICAgICAgICAgICAgICAgICAgYmV0YW1pbiA9IGJldGE7IC8vIG1vdmUgdXAgdGhlIGJvdW5kc1xuICAgICAgICAgICAgICAgICAgICBpZiAoYmV0YW1heCA9PT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJldGEgPSBiZXRhICogMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJldGEgPSAoYmV0YSArIGJldGFtYXgpIC8gMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29udmVyc2UgY2FzZS4gbWFrZSBkaXN0cnVidGlvbiBsZXNzIHBlYWt5XG4gICAgICAgICAgICAgICAgICAgIGJldGFtYXggPSBiZXRhO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYmV0YW1pbiA9PT0gLUluZmluaXR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZXRhID0gYmV0YSAvIDI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZXRhID0gKGJldGEgKyBiZXRhbWluKSAvIDI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gc3RvcHBpbmcgY29uZGl0aW9uczogdG9vIG1hbnkgdHJpZXMgb3IgZ290IGEgZ29vZCBwcmVjaXNpb25cbiAgICAgICAgICAgICAgICBudW0rKztcbiAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMobkhlcmUgLSBoVGFyZ2V0KSA8IHRvbCkge1xuICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG51bSA+PSBtYXh0cmllcykge1xuICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnZGF0YSBwb2ludCAnICsgaSArICcgZ2V0cyBwcmVjaXNpb24gJyArIGJldGEgKyAnIGFmdGVyICcgKyBudW0gKyAnIGJpbmFyeSBzZWFyY2ggc3RlcHMuJyk7XG4gICAgICAgICAgICAvLyBjb3B5IG92ZXIgdGhlIGZpbmFsIHByb3cgdG8gUCBhdCByb3cgaVxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBuOyBqKyspIHtcbiAgICAgICAgICAgICAgICBQW2kgKiBuICsgal0gPSBwcm93W2pdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IC8vIGVuZCBsb29wIG92ZXIgZXhhbXBsZXMgaVxuICAgICAgICAvLyBzeW1tZXRyaXplIFAgYW5kIG5vcm1hbGl6ZSBpdCB0byBzdW0gdG8gMSBvdmVyIGFsbCBpalxuICAgICAgICBjb25zdCBwT3V0ID0gdGhpcy56ZXJvcyhuICogbik7XG4gICAgICAgIGNvbnN0IE4yID0gbiAqIDI7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG47IGorKykge1xuICAgICAgICAgICAgICAgIHBPdXRbaSAqIG4gKyBqXSA9IE1hdGgubWF4KChQW2kgKiBuICsgal0gKyBQW2ogKiBuICsgaV0pIC8gTjIsIDFlLTEwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBPdXQ7XG4gICAgfVxuICAgIC8vIGhlbHBlciBmdW5jdGlvblxuICAgIHNpZ24oeCkgeyByZXR1cm4geCA+IDAgPyAxIDogeCA8IDAgPyAtMSA6IDA7IH1cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRha2VzIGEgc2V0IG9mIGhpZ2gtZGltZW5zaW9uYWwgcG9pbnRzXG4gICAgLy8gYW5kIGNyZWF0ZXMgbWF0cml4IFAgZnJvbSB0aGVtIHVzaW5nIGdhdXNzaWFuIGtlcm5lbFxuICAgIGluaXREYXRhUmF3KFgpIHtcbiAgICAgICAgY29uc3QgTiA9IFgubGVuZ3RoO1xuICAgICAgICBjb25zdCBEID0gWFswXS5sZW5ndGg7XG4gICAgICAgIHRoaXMuYXNzZXJ0KE4gPiAwLCAnIFggaXMgZW1wdHk/IFlvdSBtdXN0IGhhdmUgc29tZSBkYXRhIScpO1xuICAgICAgICB0aGlzLmFzc2VydChEID4gMCwgJyBYWzBdIGlzIGVtcHR5PyBXaGVyZSBpcyB0aGUgZGF0YT8nKTtcbiAgICAgICAgY29uc3QgZGlzdHMgPSB0aGlzLnh0b2QoWCk7IC8vIGNvbnZlcnQgWCB0byBkaXN0YW5jZXMgdXNpbmcgZ2F1c3NpYW4ga2VybmVsXG4gICAgICAgIHRoaXMuUCA9IHRoaXMuZDJwKGRpc3RzLCB0aGlzLnBlcnBsZXhpdHksIDFlLTQpOyAvLyBhdHRhY2ggdG8gb2JqZWN0XG4gICAgICAgIHRoaXMuTiA9IE47IC8vIGJhY2sgdXAgdGhlIHNpemUgb2YgdGhlIGRhdGFzZXRcbiAgICAgICAgdGhpcy5pbml0U29sdXRpb24oKTsgLy8gcmVmcmVzaCB0aGlzXG4gICAgfVxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgYSBnaXZlbiBkaXN0YW5jZSBtYXRyaXggYW5kIGNyZWF0ZXNcbiAgICAvLyBtYXRyaXggUCBmcm9tIHRoZW0uXG4gICAgLy8gRCBpcyBhc3N1bWVkIHRvIGJlIHByb3ZpZGVkIGFzIGEgbGlzdCBvZiBsaXN0cywgYW5kIHNob3VsZCBiZSBzeW1tZXRyaWNcbiAgICBpbml0RGF0YURpc3QoRCkge1xuICAgICAgICBjb25zdCBOID0gRC5sZW5ndGg7XG4gICAgICAgIHRoaXMuYXNzZXJ0KE4gPiAwLCAnIFggaXMgZW1wdHk/IFlvdSBtdXN0IGhhdmUgc29tZSBkYXRhIScpO1xuICAgICAgICAvLyBjb252ZXJ0IEQgdG8gYSAoZmFzdCkgdHlwZWQgYXJyYXkgdmVyc2lvblxuICAgICAgICBjb25zdCBkaXN0cyA9IHRoaXMuemVyb3MoTiAqIE4pOyAvLyBhbGxvY2F0ZSBjb250aWd1b3VzIGFycmF5XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTjsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBOOyBqKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gRFtpXVtqXTtcbiAgICAgICAgICAgICAgICBkaXN0c1tpICogTiArIGpdID0gZDtcbiAgICAgICAgICAgICAgICBkaXN0c1tqICogTiArIGldID0gZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLlAgPSB0aGlzLmQycChkaXN0cywgdGhpcy5wZXJwbGV4aXR5LCAxZS00KTtcbiAgICAgICAgdGhpcy5OID0gTjtcbiAgICAgICAgdGhpcy5pbml0U29sdXRpb24oKTsgLy8gcmVmcmVzaCB0aGlzXG4gICAgfVxuICAgIC8vIChyZSlpbml0aWFsaXplcyB0aGUgc29sdXRpb24gdG8gcmFuZG9tXG4gICAgaW5pdFNvbHV0aW9uKCkge1xuICAgICAgICAvLyBnZW5lcmF0ZSByYW5kb20gc29sdXRpb24gdG8gdC1TTkVcbiAgICAgICAgdGhpcy5ZID0gdGhpcy5yYW5kbjJkKHRoaXMuTiwgdGhpcy5kaW0pOyAvLyB0aGUgc29sdXRpb25cbiAgICAgICAgdGhpcy5nYWlucyA9IHRoaXMucmFuZG4yZCh0aGlzLk4sIHRoaXMuZGltLCAxLjApOyAvLyBzdGVwIGdhaW5zIHRvIGFjY2VsZXJhdGUgcHJvZ3Jlc3MgaW4gdW5jaGFuZ2luZyBkaXJlY3Rpb25zXG4gICAgICAgIHRoaXMueXN0ZXAgPSB0aGlzLnJhbmRuMmQodGhpcy5OLCB0aGlzLmRpbSwgMC4wKTsgLy8gbW9tZW50dW0gYWNjdW11bGF0b3JcbiAgICAgICAgdGhpcy5pdGVyID0gMDtcbiAgICB9XG4gICAgLy8gcmV0dXJuIHBvaW50ZXIgdG8gY3VycmVudCBzb2x1dGlvblxuICAgIGdldFNvbHV0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ZO1xuICAgIH1cbiAgICAvLyBwZXJmb3JtIGEgc2luZ2xlIHN0ZXAgb2Ygb3B0aW1pemF0aW9uIHRvIGltcHJvdmUgdGhlIGVtYmVkZGluZ1xuICAgIHN0ZXAoKSB7XG4gICAgICAgIHRoaXMuaXRlciArPSAxO1xuICAgICAgICBjb25zdCBOID0gdGhpcy5OO1xuICAgICAgICBjb25zdCBjZyA9IHRoaXMuY29zdEdyYWQodGhpcy5ZKTsgLy8gZXZhbHVhdGUgZ3JhZGllbnRcbiAgICAgICAgY29uc3QgY29zdCA9IGNnLmNvc3Q7XG4gICAgICAgIGNvbnN0IGdyYWQgPSBjZy5ncmFkO1xuICAgICAgICAvLyBwZXJmb3JtIGdyYWRpZW50IHN0ZXBcbiAgICAgICAgY29uc3QgeW1lYW4gPSB0aGlzLnplcm9zKHRoaXMuZGltKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBOOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGQgPSAwOyBkIDwgdGhpcy5kaW07IGQrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdpZCA9IGdyYWRbaV1bZF07XG4gICAgICAgICAgICAgICAgY29uc3Qgc2lkID0gdGhpcy55c3RlcFtpXVtkXTtcbiAgICAgICAgICAgICAgICBjb25zdCBnYWluaWQgPSB0aGlzLmdhaW5zW2ldW2RdO1xuICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgZ2FpbiB1cGRhdGVcbiAgICAgICAgICAgICAgICBsZXQgbmV3Z2FpbiA9IHRoaXMuc2lnbihnaWQpID09PSB0aGlzLnNpZ24oc2lkKSA/IGdhaW5pZCAqIDAuOCA6IGdhaW5pZCArIDAuMjtcbiAgICAgICAgICAgICAgICBpZiAobmV3Z2FpbiA8IDAuMDEpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Z2FpbiA9IDAuMDE7XG4gICAgICAgICAgICAgICAgfSAvLyBjbGFtcFxuICAgICAgICAgICAgICAgIHRoaXMuZ2FpbnNbaV1bZF0gPSBuZXdnYWluOyAvLyBzdG9yZSBmb3IgbmV4dCB0dXJuXG4gICAgICAgICAgICAgICAgLy8gY29tcHV0ZSBtb21lbnR1bSBzdGVwIGRpcmVjdGlvblxuICAgICAgICAgICAgICAgIGNvbnN0IG1vbXZhbCA9IHRoaXMuaXRlciA8IDI1MCA/IDAuNSA6IDAuODtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdzaWQgPSBtb212YWwgKiBzaWQgLSB0aGlzLmVwc2lsb24gKiBuZXdnYWluICogZ3JhZFtpXVtkXTtcbiAgICAgICAgICAgICAgICB0aGlzLnlzdGVwW2ldW2RdID0gbmV3c2lkOyAvLyByZW1lbWJlciB0aGUgc3RlcCB3ZSB0b29rXG4gICAgICAgICAgICAgICAgLy8gc3RlcCFcbiAgICAgICAgICAgICAgICB0aGlzLllbaV1bZF0gKz0gbmV3c2lkO1xuICAgICAgICAgICAgICAgIHltZWFuW2RdICs9IHRoaXMuWVtpXVtkXTsgLy8gYWNjdW11bGF0ZSBtZWFuIHNvIHRoYXQgd2UgY2FuIGNlbnRlciBsYXRlclxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHJlcHJvamVjdCBZIHRvIGJlIHplcm8gbWVhblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE47IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgZCA9IDA7IGQgPCB0aGlzLmRpbTsgZCsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ZW2ldW2RdIC09IHltZWFuW2RdIC8gTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL2lmKHRoaXMuaXRlciUxMDA9PT0wKSBjb25zb2xlLmxvZygnaXRlciAnICsgdGhpcy5pdGVyICsgJywgY29zdDogJyArIGNvc3QpO1xuICAgICAgICByZXR1cm4gY29zdDsgLy8gcmV0dXJuIGN1cnJlbnQgY29zdFxuICAgIH1cbiAgICAvLyBmb3IgZGVidWdnaW5nOiBncmFkaWVudCBjaGVja1xuICAgIGRlYnVnR3JhZCgpIHtcbiAgICAgICAgY29uc3QgTiA9IHRoaXMuTjtcbiAgICAgICAgY29uc3QgY2cgPSB0aGlzLmNvc3RHcmFkKHRoaXMuWSk7IC8vIGV2YWx1YXRlIGdyYWRpZW50XG4gICAgICAgIGNvbnN0IGNvc3QgPSBjZy5jb3N0O1xuICAgICAgICBjb25zdCBncmFkID0gY2cuZ3JhZDtcbiAgICAgICAgY29uc3QgZSA9IDFlLTU7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTjsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBkID0gMDsgZCA8IHRoaXMuZGltOyBkKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCB5b2xkID0gdGhpcy5ZW2ldW2RdO1xuICAgICAgICAgICAgICAgIHRoaXMuWVtpXVtkXSA9IHlvbGQgKyBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNnMCA9IHRoaXMuY29zdEdyYWQodGhpcy5ZKTtcbiAgICAgICAgICAgICAgICB0aGlzLllbaV1bZF0gPSB5b2xkIC0gZTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZzEgPSB0aGlzLmNvc3RHcmFkKHRoaXMuWSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYW5hbHl0aWMgPSBncmFkW2ldW2RdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG51bWVyaWNhbCA9IChjZzAuY29zdCAtIGNnMS5jb3N0KSAvICgyICogZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coaSArICcsJyArIGQgKyAnOiBncmFkY2hlY2sgYW5hbHl0aWM6ICcgKyBhbmFseXRpYyArICcgdnMuIG51bWVyaWNhbDogJyArIG51bWVyaWNhbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ZW2ldW2RdID0geW9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyByZXR1cm4gY29zdCBhbmQgZ3JhZGllbnQsIGdpdmVuIGFuIGFycmFuZ2VtZW50XG4gICAgY29zdEdyYWQoWSkge1xuICAgICAgICBjb25zdCBOID0gdGhpcy5OO1xuICAgICAgICBjb25zdCBkaW0gPSB0aGlzLmRpbTsgLy8gZGltIG9mIG91dHB1dCBzcGFjZVxuICAgICAgICBjb25zdCBQID0gdGhpcy5QO1xuICAgICAgICBjb25zdCBwbXVsID0gdGhpcy5pdGVyIDwgMTAwID8gNCA6IDE7IC8vIHRyaWNrIHRoYXQgaGVscHMgd2l0aCBsb2NhbCBvcHRpbWFcbiAgICAgICAgLy8gY29tcHV0ZSBjdXJyZW50IFEgZGlzdHJpYnV0aW9uLCB1bm5vcm1hbGl6ZWQgZmlyc3RcbiAgICAgICAgY29uc3QgcXVBcnIgPSB0aGlzLnplcm9zKE4gKiBOKTtcbiAgICAgICAgbGV0IHFzdW0gPSAwLjA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTjsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBOOyBqKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgZHN1bSA9IDAuMDtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBkID0gMDsgZCA8IGRpbTsgZCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRoZXJlID0gWVtpXVtkXSAtIFlbal1bZF07XG4gICAgICAgICAgICAgICAgICAgIGRzdW0gKz0gZGhlcmUgKiBkaGVyZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcXUgPSAxLjAgLyAoMS4wICsgZHN1bSk7IC8vIFN0dWRlbnQgdC1kaXN0cmlidXRpb25cbiAgICAgICAgICAgICAgICBxdUFycltpICogTiArIGpdID0gcXU7XG4gICAgICAgICAgICAgICAgcXVBcnJbaiAqIE4gKyBpXSA9IHF1O1xuICAgICAgICAgICAgICAgIHFzdW0gKz0gMiAqIHF1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIG5vcm1hbGl6ZSBRIGRpc3RyaWJ1dGlvbiB0byBzdW0gdG8gMVxuICAgICAgICBjb25zdCBOTiA9IE4gKiBOO1xuICAgICAgICBjb25zdCBRID0gdGhpcy56ZXJvcyhOTik7XG4gICAgICAgIGZvciAobGV0IHEgPSAwOyBxIDwgTk47IHErKykge1xuICAgICAgICAgICAgUVtxXSA9IE1hdGgubWF4KHF1QXJyW3FdIC8gcXN1bSwgMWUtMTAwKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY29zdCA9IDAuMDtcbiAgICAgICAgY29uc3QgZ3JhZCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZ3N1bSA9IG5ldyBBcnJheShkaW0pOyAvLyBpbml0IGdyYWQgZm9yIHBvaW50IGlcbiAgICAgICAgICAgIGZvciAobGV0IGQgPSAwOyBkIDwgZGltOyBkKyspIHtcbiAgICAgICAgICAgICAgICBnc3VtW2RdID0gMC4wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBOOyBqKyspIHtcbiAgICAgICAgICAgICAgICBjb3N0ICs9IC1QW2kgKiBOICsgal0gKiBNYXRoLmxvZyhRW2kgKiBOICsgal0pOyAvLyBhY2N1bXVsYXRlIGNvc3QgKHRoZSBub24tY29uc3RhbnQgcG9ydGlvbiBhdCBsZWFzdC4uLilcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVtdWx0ID0gNCAqIChwbXVsICogUFtpICogTiArIGpdIC0gUVtpICogTiArIGpdKSAqIHF1QXJyW2kgKiBOICsgal07XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZCA9IDA7IGQgPCBkaW07IGQrKykge1xuICAgICAgICAgICAgICAgICAgICBnc3VtW2RdICs9IHByZW11bHQgKiAoWVtpXVtkXSAtIFlbal1bZF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdyYWQucHVzaChnc3VtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjb3N0LCBncmFkIH07XG4gICAgfVxufVxuZXhwb3J0cy5UU05FID0gVFNORTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuLy8gdGhlIHN0YXJ0dXAgZnVuY3Rpb25cbl9fd2VicGFja19yZXF1aXJlX18ueCA9ICgpID0+IHtcblx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG5cdC8vIFRoaXMgZW50cnkgbW9kdWxlIGRlcGVuZHMgb24gb3RoZXIgbG9hZGVkIGNodW5rcyBhbmQgZXhlY3V0aW9uIG5lZWQgdG8gYmUgZGVsYXllZFxuXHR2YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyh1bmRlZmluZWQsIFs5MzJdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyg5OTMxKSkpXG5cdF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8oX193ZWJwYWNrX2V4cG9ydHNfXyk7XG5cdHJldHVybiBfX3dlYnBhY2tfZXhwb3J0c19fO1xufTtcblxuIiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rcyBhbmQgc2libGluZyBjaHVua3MgZm9yIHRoZSBlbnRyeXBvaW50XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjO1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHtcblx0XHRcdHZhciBpID0gc2NyaXB0cy5sZW5ndGggLSAxO1xuXHRcdFx0d2hpbGUgKGkgPiAtMSAmJiAhc2NyaXB0VXJsKSBzY3JpcHRVcmwgPSBzY3JpcHRzW2ktLV0uc3JjO1xuXHRcdH1cblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gc2VsZi5sb2NhdGlvbiArIFwiXCI7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgY2h1bmtzXG4vLyBcIjFcIiBtZWFucyBcImFscmVhZHkgbG9hZGVkXCJcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDkzMTogMVxufTtcblxuLy8gaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nXG52YXIgaW5zdGFsbENodW5rID0gKGRhdGEpID0+IHtcblx0dmFyIFtjaHVua0lkcywgbW9yZU1vZHVsZXMsIHJ1bnRpbWVdID0gZGF0YTtcblx0Zm9yKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG5cdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuXHRcdH1cblx0fVxuXHRpZihydW50aW1lKSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuXHR3aGlsZShjaHVua0lkcy5sZW5ndGgpXG5cdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRzLnBvcCgpXSA9IDE7XG5cdHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKGRhdGEpO1xufTtcbl9fd2VicGFja19yZXF1aXJlX18uZi5pID0gKGNodW5rSWQsIHByb21pc2VzKSA9PiB7XG5cdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuXHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0aWYodHJ1ZSkgeyAvLyBhbGwgY2h1bmtzIGhhdmUgSlNcblx0XHRcdGltcG9ydFNjcmlwdHMoX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy51KGNodW5rSWQpKTtcblx0XHR9XG5cdH1cbn07XG5cbnZhciBjaHVua0xvYWRpbmdHbG9iYWwgPSBzZWxmW1wid2VicGFja0NodW5rcGVwdGlkZXNcIl0gPSBzZWxmW1wid2VicGFja0NodW5rcGVwdGlkZXNcIl0gfHwgW107XG52YXIgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24gPSBjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCk7XG5jaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IGluc3RhbGxDaHVuaztcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsIi8vIHJ1biBzdGFydHVwXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18ueCgpO1xuIl0sIm5hbWVzIjpbImRlZmVycmVkIiwibmV4dCIsIkZsb2F0MzJBcnJheSIsInJhbmRvbUZsb2F0IiwicmFuZ2UiLCJNYXRoIiwicmFuZG9tIiwiZmxvb3IiLCJhc3NlcnQiLCJjb25kaXRpb24iLCJtZXNzYWdlIiwiRXJyb3IiLCJ2ZWN0b3JBZGQiLCJwIiwicSIsIm11bHRpcGxpZXIiLCJuSXRlbXMiLCJsZW5ndGgiLCJ0b3RhbCIsImkiLCJmaWxsUmFuZG9tTWF0cml4IiwiZGltZW5zaW9uMSIsImRpbWVuc2lvbjIiLCJzY2FsZSIsIm1hdHJpeCIsImZpbGwiLCJBcnJheSIsIm1hcCIsImluaXRDb29yZGluYXRlcyIsImoiLCJjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZSIsInJlc3VsdCIsImxlbiIsInBvdyIsInNxcnQiLCJkbUxpbmVhckluZGV4Iiwic2l6ZSIsIkRpc3RhbmNlTWF0cml4U2VydmljZSIsImNvbnN0cnVjdG9yIiwidXNlQ29uY3VycmVudFdvcmtlcnMiLCJ0ZXJtaW5hdGVPbkNvbXBsZXRlIiwidGhyZWFkQ291bnQiLCJuYXZpZ2F0b3IiLCJoYXJkd2FyZUNvbmN1cnJlbmN5IiwidGhpcyIsIl93b3JrZXJDb3VudCIsIm1heCIsIl93b3JrZXJzIiwiV29ya2VyIiwiVVJMIiwiX3Rlcm1pbmF0ZU9uQ29tcGxldGUiLCJjYWxjIiwidmFsdWVzIiwiZm5OYW1lIiwibm9ybWFsaXplIiwib3B0cyIsIlByb21pc2UiLCJhc3luYyIsInJlc29sdmUiLCJyZWplY3QiLCJwcm9taXNlcyIsInRvdGFsTGVuZ3RoIiwibWluIiwiY2h1bmtTaXplIiwiZGlzdGFuY2VNYXRyaXgiLCJlbmRSb3ciLCJlbmRDb2wiLCJsbWluIiwibG1heCIsIk51bWJlciIsIk1JTl9WQUxVRSIsInN0YXJ0IiwiZW5kIiwic3RhcnRSb3ciLCJzdGFydENvbCIsInBvc3RNZXNzYWdlIiwiY2h1bmNrU2l6ZSIsInJlc29sdmVXb3JrZXIiLCJyZWplY3RXb3JrZXIiLCJvbm1lc3NhZ2UiLCJkYXRhIiwiZXJyb3IiLCJkaXN0YW5jZU1hdHJpeERhdGEiLCJ0ZXJtaW5hdGUiLCJzZXQiLCJhbGwiLCJmb3JFYWNoIiwidmFsdWUiLCJpbmRleCIsImUiLCJ3b3JrZXIiLCJTUEVCYXNlIiwib3B0aW9ucyIsInN0ZXBzIiwiY3ljbGVzIiwiY3V0b2ZmIiwibGFtYmRhIiwiZGxhbWJkYSIsImxhbWJkYTIiLCJkbGFtYmRhMiIsImVwc2lsb24iLCJkaXN0YW5jZUZ1bmN0aW9uIiwiZGlzdGFuY2UiLCJkaXN0YW5jZUZ1bmN0aW9uTmFtZSIsImluaXREaXN0YW5jZSIsInZlY3RvcnMiLCJkbUluZGV4RnVuY3QiLCJtYXRyaXhTZXJ2aWNlIiwiY2FsY0Rpc3RhbmNlIiwiaW5kZXgxIiwiaW5kZXgyIiwiZW1iZWQiLCJjb29yZGluYXRlcyIsImRpbWVuc2lvbiIsImN5Y2xlIiwic3RlcCIsInJvd2kiLCJyb3dqIiwiciIsImQiLCJkaWZmSUoiLCJQU1BFQmFzZSIsIk9yaWdpbmFsU1BFIiwic3VwZXIiLCJyYWRpdXNQZXJjZW50IiwibWF4RGlzdGFuY2UiLCJtYXhEaXN0YW5jZVN0ZXBzIiwibiIsInJhZGl1cyIsIlN0cmluZ01ldHJpY3NOYW1lcyIsIlZlY3Rvck1ldHJpY3NOYW1lcyIsIkJpdEFycmF5TWV0cmljc05hbWVzIiwiSW50QXJyYXlNZXRyaWNzTmFtZXMiLCJEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cyIsIk51bWJlck1ldHJpY3NOYW1lcyIsInRhbmltb3RvU2ltaWxhcml0eSIsIngiLCJ5IiwidHJ1ZUNvdW50IiwiY29tbW9uIiwiYW5kV2l0aENvdW50Qml0cyIsImdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkiLCJzaW1pbGFyaXR5IiwiVGFuaW1vdG8iLCJEaWNlIiwiQXN5bW1ldHJpYyIsIkJyYXVuQmxhbnF1ZXQiLCJDb3NpbmUiLCJLdWxjenluc2tpIiwiTWNDb25uYXVnaGV5IiwiUm9nb3RHb2xkYmVyZyIsIlJ1c3NlbCIsIlNva2FsIiwiSGFtbWluZyIsIkV1Y2xpZGVhbiIsIkhBTU1JTkciLCJMRVZFTlNIVEVJTiIsIk1PTk9NRVJfQ0hFTUlDQUxfRElTVEFOQ0UiLCJ2ZWN0b3JEaXN0YW5jZU1ldHJpY3NNZXRob2RzIiwic3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kcyIsIkxldmVuc2h0ZWluIiwiSmFyb1dpbmtsZXIiLCJNYW5oYXR0YW4iLCJzMSIsInMyIiwiZGlzdCIsImJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kcyIsImRpY2VTaW1pbGFyaXR5IiwiYXN5bW1ldHJpY1NpbWlsYXJpdHkiLCJicmF1bkJsYW5xdWV0U2ltaWxhcml0eSIsImNvc2luZVNpbWlsYXJpdHkiLCJ0b3RhbFByb2QiLCJrdWxjenluc2tpU2ltaWxhcml0eSIsIm1jQ29ubmF1Z2hleVNpbWlsYXJpdHkiLCJjb3VudEJpdHMiLCJkaWZmIiwicm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHkiLCJydXNzZWxTaW1pbGFyaXR5Iiwic29rYWxTaW1pbGFyaXR5IiwiaW50QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzIiwiVGFuaW1vdG9JbnRBcnJheSIsIm51bWJlckRpc3RhbmNlTWV0cmljc01ldGhvZHMiLCJOdW1lcmljRGlzdGFuY2UiLCJhYnMiLCJBdmFpbGFibGVNZXRyaWNzIiwiVmVjdG9yIiwiU3RyaW5nIiwiQml0QXJyYXkiLCJNYWNyb01vbGVjdWxlIiwiTkVFRExFTUFOTl9XVU5TQ0giLCJJbnRBcnJheSIsIk1ldHJpY1RvRGF0YVR5cGUiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwicmV0Iiwia2V5IiwidmFsIiwiaXNCaXRBcnJheU1ldHJpYyIsIm5hbWUiLCJNZWFzdXJlIiwibWV0aG9kIiwiZGF0YVR5cGUiLCJnZXRNZWFzdXJlIiwiZGljdCIsImhhc093blByb3BlcnR5IiwidG9TdHJpbmciLCJnZXRNZXRyaWNCeURhdGFUeXBlIiwiYXZhaWxhYmxlTWVhc3VyZXMiLCJ0YXVSYW5kSW50IiwidGF1UmFuZCIsImVtcHR5Iiwib3V0cHV0IiwicHVzaCIsInVuZGVmaW5lZCIsIl8iLCJmaWxsZWQiLCJ2IiwiemVyb3MiLCJtZWFuIiwiaW5wdXQiLCJzdW0iLCJyZWplY3Rpb25TYW1wbGUiLCJuU2FtcGxlcyIsInBvb2xTaXplIiwicmVqZWN0U2FtcGxlIiwiYnJva2VuIiwiayIsInJlc2hhcGUyZCIsImEiLCJiIiwicm93cyIsImNvdW50IiwiY29sIiwibWFrZUhlYXAiLCJuUG9pbnRzIiwibWFrZUFycmF5cyIsImZpbGxWYWx1ZSIsImhlYXAiLCJJbmZpbml0eSIsImhlYXBQdXNoIiwicm93Iiwid2VpZ2h0IiwiZmxhZyIsImluZGljZXMiLCJ3ZWlnaHRzIiwidW5jaGVja2VkSGVhcFB1c2giLCJpc05ldyIsImlTd2FwIiwiaWMxIiwiaWMyIiwiaGVhcFNoYXBlMiIsImJ1aWxkQ2FuZGlkYXRlcyIsImN1cnJlbnRHcmFwaCIsIm5WZXJ0aWNlcyIsIm5OZWlnaGJvcnMiLCJtYXhDYW5kaWRhdGVzIiwiY2FuZGlkYXRlTmVpZ2hib3JzIiwiaWR4IiwiaXNuIiwiZGVoZWFwU29ydCIsImluZEhlYXAiLCJkaXN0SGVhcCIsImluZEhlYXBJbmRleCIsImRpc3RIZWFwSW5kZXgiLCJ0ZW1wMSIsInRlbXAyIiwic2lmdERvd24iLCJoZWFwMSIsImhlYXAyIiwiY2VpbGluZyIsImVsdCIsImxlZnRDaGlsZCIsInJpZ2h0Q2hpbGQiLCJzd2FwIiwic21hbGxlc3RGbGFnZ2VkIiwiaW5kIiwibWluRGlzdCIsInJlc3VsdEluZGV4IiwiU3BhcnNlTWF0cml4IiwiY29scyIsImRpbXMiLCJlbnRyaWVzIiwiTWFwIiwiblJvd3MiLCJuQ29scyIsImNoZWNrRGltcyIsIm1ha2VLZXkiLCJoYXMiLCJnZXQiLCJkZWZhdWx0VmFsdWUiLCJnZXRBbGwiLCJvcmRlcmVkIiwicm93Q29sVmFsdWVzIiwic29ydCIsImdldERpbXMiLCJnZXRSb3dzIiwiZnJvbSIsImdldENvbHMiLCJnZXRWYWx1ZXMiLCJmbiIsInZhbHMiLCJ0b0FycmF5Iiwib2xkUm93cyIsIm9sZENvbHMiLCJvbGRWYWxzIiwibWF0bGVuIiwiSW50MzJBcnJheSIsInBhaXJ3aXNlTXVsdGlwbHkiLCJlbGVtZW50V2lzZSIsImFkZCIsInN1YnRyYWN0IiwibXVsdGlwbHlTY2FsYXIiLCJzY2FsYXIiLCJlbGltaW5hdGVaZXJvcyIsIm0iLCJ6ZXJvSW5kaWNlcyIsIlNldCIsInJlbW92ZUJ5WmVyb0luZGV4IiwibmV4dFZhbHVlcyIsImZpbHRlciIsIm5leHRSb3dzIiwibmV4dENvbHMiLCJub3JtVHlwZSIsIm5vcm1GbiIsIm5vcm1GbnMiLCJjb2xzQnlSb3ciLCJuZXh0TWF0cml4Iiwibm9ybSIsInhzIiwib3AiLCJ2aXNpdGVkIiwib3BlcmF0ZSIsIm5leHRWYWx1ZSIsInZhbHVlc0EiLCJyb3dzQSIsImNvbHNBIiwidmFsdWVzQiIsInJvd3NCIiwiY29sc0IiLCJnZXRDU1IiLCJpbmRwdHIiLCJjdXJyZW50Um93IiwiRmxhdFRyZWUiLCJoeXBlcnBsYW5lcyIsIm9mZnNldHMiLCJjaGlsZHJlbiIsIm1ha2VGb3Jlc3QiLCJuVHJlZXMiLCJsZWFmU2l6ZSIsInRyZWVzIiwibWFrZUV1Y2xpZGVhblRyZWUiLCJtYWtlVHJlZSIsImZvcmVzdCIsInRyZWUiLCJuTm9kZXMiLCJudW1Ob2RlcyIsIm5MZWF2ZXMiLCJudW1MZWF2ZXMiLCJoeXBlcnBsYW5lIiwicmVjdXJzaXZlRmxhdHRlbiIsImZsYXR0ZW5UcmVlIiwic3BsaXRSZXN1bHRzIiwibGVmdEluZGV4IiwicmlnaHRJbmRleCIsImxlZnQiLCJyaWdodCIsImh5cGVycGxhbmVPZmZzZXQiLCJoeXBlcnBsYW5lVmVjdG9yIiwibkxlZnQiLCJuUmlnaHQiLCJzaWRlIiwibWFyZ2luIiwiaW5kaWNlc0xlZnQiLCJpbmRpY2VzUmlnaHQiLCJvZmZzZXQiLCJldWNsaWRlYW5SYW5kb21Qcm9qZWN0aW9uU3BsaXQiLCJpc0xlYWYiLCJub2RlTnVtIiwibGVhZk51bSIsInNwbGljZSIsIm9sZE5vZGVOdW0iLCJyZXMiLCJzZWxlY3RTaWRlIiwicG9pbnQiLCJzZWFyY2hGbGF0VHJlZSIsIm5vZGUiLCJwcm90b3R5cGUiLCJpc0FueUFycmF5Iiwib2JqZWN0IiwiY2FsbCIsImVuZHNXaXRoIiwiZXJyb3JDYWxjdWxhdGlvbiIsInBhcmFtZXRlcnMiLCJwYXJhbWV0ZXJpemVkRnVuY3Rpb24iLCJmdW5jIiwidGFnIiwiaW5jbHVkZXMiLCJyZXNjYWxlIiwiYXJndW1lbnRzIiwiVHlwZUVycm9yIiwiY3VycmVudE1pbiIsIl9vcHRpb25zJGZyb21JbmRleCIsImZyb21JbmRleCIsIl9vcHRpb25zJHRvSW5kZXgiLCJ0b0luZGV4IiwiaXNJbnRlZ2VyIiwibWluVmFsdWUiLCJjdXJyZW50TWF4IiwibWF4VmFsdWUiLCJSYW5nZUVycm9yIiwiX29wdGlvbnMkbWluIiwiYXV0b01pbk1heCIsIl9vcHRpb25zJG1heCIsImZhY3RvciIsImluZGVudCIsInJlcGVhdCIsImluZGVudERhdGEiLCJpbnNwZWN0TWF0cml4V2l0aE9wdGlvbnMiLCJtYXhSb3dzIiwibWF4Q29sdW1ucyIsIm1heE51bVNpemUiLCJwYWRNaW51cyIsImNvbHVtbnMiLCJtYXhJIiwibWF4SiIsImxvb3AiLCJsaW5lIiwiZm9ybWF0TnVtYmVyIiwiam9pbiIsImluc3BlY3REYXRhIiwibnVtIiwiZm9ybWF0TnVtYmVyMiIsInBhZEVuZCIsInN0ciIsImZpeCIsInRvRml4ZWQiLCJzdGFydHNXaXRoIiwiZXhwIiwidG9FeHBvbmVudGlhbCIsInNsaWNlIiwiY2hlY2tSb3dJbmRleCIsIm91dGVyIiwiY2hlY2tDb2x1bW5JbmRleCIsImNoZWNrUm93VmVjdG9yIiwidmVjdG9yIiwidG8xREFycmF5IiwiY2hlY2tDb2x1bW5WZWN0b3IiLCJjaGVja1JhbmdlIiwic3RhcnRDb2x1bW4iLCJlbmRDb2x1bW4iLCJjaGVja051bWJlciIsIm5ld0FycmF5IiwiYXJyYXkiLCJjaGVja05vbkVtcHR5IiwiaXNFbXB0eSIsIkFic3RyYWN0TWF0cml4IiwiZnJvbTFEQXJyYXkiLCJuZXdSb3dzIiwibmV3Q29sdW1ucyIsIm5ld0RhdGEiLCJuZXdNYXRyaXgiLCJjb2x1bW4iLCJyb3dWZWN0b3IiLCJjb2x1bW5WZWN0b3IiLCJvbmVzIiwicmFuZCIsInJhbmRJbnQiLCJpbnRlcnZhbCIsInJvdW5kIiwiZXllIiwiZGlhZyIsImwiLCJtYXRyaXgxIiwibWF0cml4MiIsImNoZWNrTWF0cml4IiwiaXNNYXRyaXgiLCJrbGFzcyIsImFwcGx5IiwiY2FsbGJhY2siLCJ0bzJEQXJyYXkiLCJjb3B5IiwidG9KU09OIiwiaXNSb3dWZWN0b3IiLCJpc0NvbHVtblZlY3RvciIsImlzVmVjdG9yIiwiaXNTcXVhcmUiLCJpc1N5bW1ldHJpYyIsImlzRWNoZWxvbkZvcm0iLCJwcmV2aW91c0NvbHVtbiIsImNoZWNrZWQiLCJpc1JlZHVjZWRFY2hlbG9uRm9ybSIsImVjaGVsb25Gb3JtIiwiY2xvbmUiLCJoIiwiaU1heCIsInN3YXBSb3dzIiwidG1wIiwicmVkdWNlZEVjaGVsb25Gb3JtIiwibWF4Um93IiwicGl2b3QiLCJzZXRTdWJNYXRyaXgiLCJuZWciLCJtdWxTIiwiZ2V0Um93IiwiZ2V0Um93VmVjdG9yIiwic2V0Um93Iiwicm93MSIsInJvdzIiLCJ0ZW1wIiwiZ2V0Q29sdW1uIiwiZ2V0Q29sdW1uVmVjdG9yIiwic2V0Q29sdW1uIiwic3dhcENvbHVtbnMiLCJjb2x1bW4xIiwiY29sdW1uMiIsImFkZFJvd1ZlY3RvciIsInN1YlJvd1ZlY3RvciIsIm11bFJvd1ZlY3RvciIsImRpdlJvd1ZlY3RvciIsImFkZENvbHVtblZlY3RvciIsInN1YkNvbHVtblZlY3RvciIsIm11bENvbHVtblZlY3RvciIsImRpdkNvbHVtblZlY3RvciIsIm11bFJvdyIsIm11bENvbHVtbiIsImJ5IiwiTmFOIiwiTkVHQVRJVkVfSU5GSU5JVFkiLCJtYXhJbmRleCIsIlBPU0lUSVZFX0lORklOSVRZIiwibWluSW5kZXgiLCJtYXhSb3dJbmRleCIsIm1pblJvdyIsIm1pblJvd0luZGV4IiwibWF4Q29sdW1uIiwibWF4Q29sdW1uSW5kZXgiLCJtaW5Db2x1bW4iLCJtaW5Db2x1bW5JbmRleCIsInR5cGUiLCJjdW11bGF0aXZlU3VtIiwiZG90IiwidmVjdG9yMiIsInZlY3RvcjEiLCJtbXVsIiwib3RoZXIiLCJCY29saiIsIkZsb2F0NjRBcnJheSIsInMiLCJzdHJhc3NlbjJ4MiIsImExMSIsImIxMSIsImExMiIsImIxMiIsImEyMSIsImIyMSIsImEyMiIsImIyMiIsIm0xIiwibTIiLCJtMyIsIm00IiwibTUiLCJjMDAiLCJjMDEiLCJjMTAiLCJjMTEiLCJzdHJhc3NlbjN4MyIsImEwMCIsImEwMSIsImEwMiIsImExMCIsImEyMCIsImIwMCIsImIwMSIsImIwMiIsImIxMCIsImIyMCIsIm02IiwibTciLCJtOCIsIm05IiwibTEyIiwibTEzIiwibTE0IiwibTE1IiwibTE2IiwibTE3IiwibTE4IiwiYzAyIiwiYzEyIiwiYzIwIiwiYzIxIiwiYzIyIiwibW11bFN0cmFzc2VuIiwicjEiLCJjMSIsInIyIiwiYzIiLCJtYXQiLCJjIiwicmVzdWx0YXQiLCJjb25zb2xlIiwid2FybiIsImJsb2NrTXVsdCIsImhhbGZSb3dzIiwicGFyc2VJbnQiLCJoYWxmQ29scyIsInN1Yk1hdHJpeCIsInN1YiIsInNjYWxlUm93cyIsImlzRmluaXRlIiwic2NhbGVDb2x1bW5zIiwiZmxpcFJvd3MiLCJtaWRkbGUiLCJjZWlsIiwiZmlyc3QiLCJsYXN0IiwiZmxpcENvbHVtbnMiLCJrcm9uZWNrZXJQcm9kdWN0Iiwia3JvbmVja2VyU3VtIiwiQXhJIiwiSXhCIiwidHJhbnNwb3NlIiwic29ydFJvd3MiLCJjb21wYXJlRnVuY3Rpb24iLCJjb21wYXJlTnVtYmVycyIsInNvcnRDb2x1bW5zIiwic3ViTWF0cml4Um93Iiwic3ViTWF0cml4Q29sdW1uIiwic2VsZWN0aW9uIiwicm93SW5kaWNlcyIsImNvbHVtbkluZGljZXMiLCJjaGVja1Jvd0luZGljZXMiLCJjaGVja0NvbHVtbkluZGljZXMiLCJyb3dJbmRleCIsImNvbHVtbkluZGV4IiwidHJhY2UiLCJzdW1CeVJvdyIsInN1bUJ5Q29sdW1uIiwic3VtQWxsIiwicHJvZHVjdCIsInByb2R1Y3RCeVJvdyIsInByb2R1Y3RCeUNvbHVtbiIsInByb2R1Y3RBbGwiLCJ2YXJpYW5jZSIsInVuYmlhc2VkIiwic3VtMSIsInN1bTIiLCJ2YXJpYW5jZUJ5Um93IiwidmFyaWFuY2VCeUNvbHVtbiIsInZhcmlhbmNlQWxsIiwic3RhbmRhcmREZXZpYXRpb24iLCJjZW50ZXIiLCJjZW50ZXJCeVJvdyIsImNlbnRlckJ5Q29sdW1uIiwiY2VudGVyQWxsIiwiZ2V0U2NhbGVCeVJvdyIsInNjYWxlQnlSb3ciLCJnZXRTY2FsZUJ5Q29sdW1uIiwic2NhbGVCeUNvbHVtbiIsImRpdmlkZXIiLCJnZXRTY2FsZUFsbCIsInNjYWxlQWxsIiwiU3ltYm9sIiwiZm9yIiwicmFuZG9tSW50IiwiZGlhZ29uYWwiLCJpZGVudGl0eSIsIm5lZ2F0ZSIsInRlbnNvclByb2R1Y3QiLCJuQ29sdW1ucyIsImFycmF5RGF0YSIsImV2ZXJ5IiwiZWxlbWVudCIsInJlbW92ZVJvdyIsImFkZFJvdyIsInJlbW92ZUNvbHVtbiIsIm5ld1JvdyIsImFkZENvbHVtbiIsIk1hdHJpeCIsImFkZFMiLCJhZGRNIiwic3ViUyIsInN1Yk0iLCJzdWJ0cmFjdFMiLCJzdWJ0cmFjdE0iLCJtdWwiLCJtdWxNIiwibXVsdGlwbHkiLCJtdWx0aXBseVMiLCJtdWx0aXBseU0iLCJkaXYiLCJkaXZTIiwiZGl2TSIsImRpdmlkZSIsImRpdmlkZVMiLCJkaXZpZGVNIiwibW9kIiwibW9kUyIsIm1vZE0iLCJtb2R1bHVzIiwibW9kdWx1c1MiLCJtb2R1bHVzTSIsImFuZCIsImFuZFMiLCJhbmRNIiwib3IiLCJvclMiLCJvck0iLCJ4b3IiLCJ4b3JTIiwieG9yTSIsImxlZnRTaGlmdCIsImxlZnRTaGlmdFMiLCJsZWZ0U2hpZnRNIiwic2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdCIsInNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnRTIiwic2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdE0iLCJyaWdodFNoaWZ0IiwicmlnaHRTaGlmdFMiLCJyaWdodFNoaWZ0TSIsInplcm9GaWxsUmlnaHRTaGlmdCIsInplcm9GaWxsUmlnaHRTaGlmdFMiLCJ6ZXJvRmlsbFJpZ2h0U2hpZnRNIiwibm90IiwiYWNvcyIsImFjb3NoIiwiYXNpbiIsImFzaW5oIiwiYXRhbiIsImF0YW5oIiwiY2JydCIsImNsejMyIiwiY29zIiwiY29zaCIsImV4cG0xIiwiZnJvdW5kIiwibG9nIiwibG9nMXAiLCJsb2cxMCIsImxvZzIiLCJzaWduIiwic2luIiwic2luaCIsInRhbiIsInRhbmgiLCJ0cnVuYyIsImFyZzAiLCJwb3dTIiwicG93TSIsImluc3RhbGxNYXRoT3BlcmF0aW9ucyIsIldyYXBwZXJNYXRyaXgyRCIsIkx1RGVjb21wb3NpdGlvbiIsInQiLCJMVWNvbGoiLCJrbWF4IiwibHUiLCJwaXZvdFZlY3RvciIsInBpdm90U2lnbiIsIkxVIiwiaXNTaW5ndWxhciIsInNvbHZlIiwiWCIsImRldGVybWluYW50IiwibG93ZXJUcmlhbmd1bGFyTWF0cml4IiwidXBwZXJUcmlhbmd1bGFyTWF0cml4IiwicGl2b3RQZXJtdXRhdGlvblZlY3RvciIsImh5cG90ZW51c2UiLCJRckRlY29tcG9zaXRpb24iLCJxciIsInJkaWFnIiwibnJtIiwiUVIiLCJSZGlhZyIsImlzRnVsbFJhbmsiLCJvcnRob2dvbmFsTWF0cml4IiwiU2luZ3VsYXJWYWx1ZURlY29tcG9zaXRpb24iLCJjb21wdXRlTGVmdFNpbmd1bGFyVmVjdG9ycyIsImNvbXB1dGVSaWdodFNpbmd1bGFyVmVjdG9ycyIsImF1dG9UcmFuc3Bvc2UiLCJ3YW50dSIsIkJvb2xlYW4iLCJ3YW50diIsInN3YXBwZWQiLCJhdXgiLCJudSIsIm5pIiwiVSIsIlYiLCJ3b3JrIiwic2kiLCJuY3QiLCJucnQiLCJtcmMiLCJwcCIsIml0ZXIiLCJlcHMiLCJFUFNJTE9OIiwia2FzZSIsImFscGhhIiwiaXNOYU4iLCJrcyIsImYiLCJjcyIsInNuIiwic3AiLCJzcG0xIiwiZXBtMSIsInNrIiwiZWsiLCJzaGlmdCIsImciLCJZIiwidGhyZXNob2xkIiwic2NvbHMiLCJMcyIsInJpZ2h0U2luZ3VsYXJWZWN0b3JzIiwiVkwiLCJ2cm93cyIsInVyb3dzIiwiVkxVIiwic29sdmVGb3JEaWFnb25hbCIsImludmVyc2UiLCJ2Y29scyIsInVjb2xzIiwibm9ybTIiLCJyYW5rIiwidG9sIiwiaWkiLCJsZWZ0U2luZ3VsYXJWZWN0b3JzIiwiZGlhZ29uYWxNYXRyaXgiLCJwYXJhbXMiLCJkYW1waW5nIiwiZ3JhZGllbnREaWZmZXJlbmNlIiwiZXZhbHVhdGVkRGF0YSIsImdyYWRpZW50RnVuYyIsInBhcmFtRnVuY3Rpb24iLCJhbnMiLCJwYXJhbSIsImF1eFBhcmFtcyIsImZ1bmNQYXJhbSIsImdyYWRpZW50RnVuY3Rpb24iLCJtYXRyaXhGdW5jIiwibWF0cml4RnVuY3Rpb24iLCJpbnZlcnNlTWF0cml4IiwidXNlU1ZEIiwibGVmdEhhbmRTaWRlIiwicmlnaHRIYW5kU2lkZSIsIlNNT09USF9LX1RPTEVSQU5DRSIsIk1JTl9LX0RJU1RfU0NBTEUiLCJVTUFQIiwibmVpZ2hib3JzIiwibGVhcm5pbmdSYXRlIiwibG9jYWxDb25uZWN0aXZpdHkiLCJuQ29tcG9uZW50cyIsIm5FcG9jaHMiLCJuZWdhdGl2ZVNhbXBsZVJhdGUiLCJyZXB1bHNpb25TdHJlbmd0aCIsInNldE9wTWl4UmF0aW8iLCJzcHJlYWQiLCJ0cmFuc2Zvcm1RdWV1ZVNpemUiLCJ0YXJnZXRNZXRyaWMiLCJ0YXJnZXRXZWlnaHQiLCJ0YXJnZXROTmVpZ2hib3JzIiwiZGlzdGFuY2VGbiIsIm51bWVyaWMiLCJpc0luaXRpYWxpemVkIiwicnBGb3Jlc3QiLCJlbWJlZGRpbmciLCJvcHRpbWl6YXRpb25TdGF0ZSIsIk9wdGltaXphdGlvblN0YXRlIiwic2V0UGFyYW0iLCJmaXQiLCJpbml0aWFsaXplRml0Iiwib3B0aW1pemVMYXlvdXQiLCJmaXRBc3luYyIsIm9wdGltaXplTGF5b3V0QXN5bmMiLCJzZXRTdXBlcnZpc2VkUHJvamVjdGlvbiIsInNldFByZWNvbXB1dGVkS05OIiwia25uSW5kaWNlcyIsImtubkRpc3RhbmNlcyIsImdldE5FcG9jaHMiLCJrbm5SZXN1bHRzIiwibmVhcmVzdE5laWdoYm9ycyIsImdyYXBoIiwiZnV6enlTaW1wbGljaWFsU2V0IiwibWFrZVNlYXJjaEZucyIsInNlYXJjaEdyYXBoIiwibWFrZVNlYXJjaEdyYXBoIiwicHJvY2Vzc0dyYXBoRm9yU3VwZXJ2aXNlZFByb2plY3Rpb24iLCJoZWFkIiwidGFpbCIsImVwb2Noc1BlclNhbXBsZSIsImluaXRpYWxpemVTaW1wbGljaWFsU2V0RW1iZWRkaW5nIiwiaW5pdGlhbGl6ZU9wdGltaXphdGlvbiIsInByZXBhcmVGb3JPcHRpbWl6YXRpb25Mb29wIiwiaW5pdEZyb21UcmVlIiwiaW5pdEZyb21SYW5kb20iLCJxdWVyeVBvaW50cyIsIl9oZWFwIiwiX3RyZWUiLCJzZWFyY2giLCJpbml0aWFsaXphdGlvbiIsInRyaWVkIiwidmVydGV4IiwiY2FuZGlkYXRlcyIsImNhbmRpZGF0ZSIsImtubiIsImRpc3RhbmNlcyIsIm5laWdoYm9yIiwidHJhbnNmb3JtIiwidG9UcmFuc2Zvcm0iLCJyYXdEYXRhIiwiaW5pdCIsInJlc3VsdHMiLCJhZGp1c3RlZExvY2FsQ29ubmVjdGl2aXR5Iiwic2lnbWFzIiwicmhvcyIsInNtb290aEtOTkRpc3RhbmNlIiwiY29tcHV0ZU1lbWJlcnNoaXBTdHJlbmd0aHMiLCJjc3JNYXRyaXgiLCJ6IiwiaW5pdFRyYW5zZm9ybSIsImdyYXBoTWF4IiwibWFrZUVwb2Noc1BlclNhbXBsZSIsImFzc2lnbk9wdGltaXphdGlvblN0YXRlUGFyYW1ldGVycyIsImhlYWRFbWJlZGRpbmciLCJ0YWlsRW1iZWRkaW5nIiwiY3VycmVudEVwb2NoIiwiZmFyRGlzdCIsImNhdGVnb3JpY2FsU2ltcGxpY2lhbFNldEludGVyc2VjdGlvbiIsIm9wdGltaXplTGF5b3V0U3RlcCIsImdldEVtYmVkZGluZyIsIm1ldHJpY05ORGVzY2VudCIsImxlYWZBcnJheSIsIm5JdGVycyIsImRlbHRhIiwicmhvIiwicnBUcmVlSW5pdCIsImNqIiwiY2siLCJzcGFyc2VNYXRyaXgiLCJwcm9kTWF0cml4Iiwic2ltcGxpY2lhbFNldCIsInRhcmdldCIsInVua25vd25EaXN0IiwiaW50ZXJzZWN0aW9uIiwiZmFzdEludGVyc2VjdGlvbiIsInJlc2V0TG9jYWxDb25uZWN0aXZpdHkiLCJuSXRlciIsImJhbmR3aWR0aCIsImxvIiwiaGkiLCJtaWQiLCJpdGhEaXN0YW5jZXMiLCJub25aZXJvRGlzdHMiLCJpbnRlcnBvbGF0aW9uIiwicHN1bSIsIm1lYW5JdGhEaXN0YW5jZXMiLCJtZWFuRGlzdGFuY2VzIiwiZ3JhcGhWYWx1ZXMiLCJlbnRyeSIsInciLCJzdGF0ZSIsImFzc2lnbiIsImRpbSIsIm1vdmVPdGhlciIsImVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlIiwiZXBvY2hPZk5leHROZWdhdGl2ZVNhbXBsZSIsImVwb2NoT2ZOZXh0U2FtcGxlIiwiaW5pdGlhbEFscGhhIiwiZ2FtbWEiLCJ4diIsInl2IiwicGFyYW1ldGVyVmFsdWVzIiwibWF4SXRlcmF0aW9ucyIsImVycm9yVG9sZXJhbmNlIiwibWluVmFsdWVzIiwibWF4VmFsdWVzIiwiaW5pdGlhbFZhbHVlcyIsInBhckxlbiIsIk1BWF9TQUZFX0lOVEVHRVIiLCJNSU5fU0FGRV9JTlRFR0VSIiwiaXRlcmF0aW9uIiwiY29udmVyZ2VkIiwicGFyYW1ldGVyRXJyb3IiLCJpdGVyYXRpb25zIiwiZmluZEFCUGFyYW1zIiwiY3VycmVudCIsImRpc3RTcXVhcmVkIiwickRpc3QiLCJncmFkQ29lZmYiLCJncmFkRCIsImNsaXAiLCJuTmVnU2FtcGxlcyIsImVwb2NoQ2FsbGJhY2siLCJlcG9jaENvbXBsZXRlZCIsInNob3VsZFN0b3AiLCJpc0ZpbmlzaGVkIiwic2V0VGltZW91dCIsImVyciIsImNsaXBWYWx1ZSIsIkRpbVJlZHVjdGlvbk1ldGhvZHMiLCJEaXN0YW5jZU1hdHJpeCIsIl9kYXRhIiwiX3NpemUiLCJkYXRhTGVuZ3RoIiwiX2xpbmVhcml6ZUlKIiwibGlzdCIsInNxdWFyZSIsIlNwYXJzZU1hdHJpeFNlcnZpY2UiLCJtYXRTaXplIiwibWluVGhyZXNob2xkIiwiZ2V0TWluaW1hbFRocmVzaG9sZCIsIndvcmtlcnMiLCJzdGFydElkeCIsImVuZElkeCIsImZ1bGxTaXplIiwiYWNjIiwidGhyZXNob2xkV29ya2VycyIsInNodWZmbGVkVmFsdWVzIiwidGVzdFNldFNpemVQZXJXb3JrZXIiLCJ0UHJvbWlzZXMiLCJzYW1wbGVMZW5ndGgiLCJjYWxjU3luYyIsImNudCIsIm1pIiwibWoiLCJzb21lIiwiUmVkdWNlciIsIkF2YWlsYWJsZVJlZHVjZXJzIiwiZGlzdGFuY2VGbkFyZ3MiLCJ1c2luZ1NwYXJzZU1hdHJpeCIsInNwYXJzZU1hdHJpeFRocmVzaG9sZCIsInRyYW5zZmVyZWRTcGFyc2VNYXRyaXgiLCJwcm9ncmVzc0Z1bmMiLCJkaXN0YW5jZUZuYW1lIiwiZG1JbmRleEZ1bmMiLCJ1c2luZ0Rpc3RhbmNlTWF0cml4IiwicHJlQ2FsY3VsYXRlRGlzdGFuY2VNYXRyaXgiLCJfZW5jb2RlZERpc3RhbmNlTWF0cml4IiwiYmluZCIsIl9lbmNvZGVkU3BhcnNlTWF0cml4IiwiX2VuY29kZWREaXN0YW5jZSIsInJlZHVjZXIiLCJwYXJhbGxlbERpc3RhbmNlV29ya2VycyIsImtublJlcyIsImRtIiwiaW5zZXJ0IiwiZGlzdGFuY2VzQXIiLCJpbmRleGVzIiwidGltZSIsImtubkluZGV4ZXMiLCJ0aW1lRW5kIiwiZ2V0S25uR3JhcGhGcm9tRE0iLCJuZWlnaGJvdXJzIiwiZ2V0S25uR3JhcGgiLCJzZWNvbmQiLCJlcG9jIiwibWF0cml4UHJveHkiLCJjb25kZW5zZWRBcnJheSIsImxpbmVhckZ1bmMiLCJsaW5lYXJJbmRleCIsImlOdW0iLCJqTnVtIiwiaWR4MUhhbmRsZXIiLCJpZHgxIiwiX3JlY2VpdmVyIiwiUHJveHkiLCJpZHgyIiwiaWR4MkhhbmRsZXIiLCJkaXN0YW5jZU1hdHJpeFByb3h5IiwiaW5pdERhdGFEaXN0IiwiZ2V0U29sdXRpb24iLCJlbWIiLCJEaW1lbnNpb25hbGl0eVJlZHVjZXIiLCJtZXRyaWMiLCJtZWFzdXJlIiwic3BlY09wdGlvbnMiLCJfbGVuZ3RoIiwiYXZhaWxhYmxlTWV0cmljc0J5VHlwZSIsInR5cGVOYW1lIiwiYXZhaWxhYmxlTWV0aG9kcyIsImF2YWlsYWJsZU1ldHJpY3MiLCJvYmoiLCJlcG9jaE51bSIsImVwb2Noc0xlbmd0aCIsInNlbGYiLCJjb2x1bW5EYXRhIiwib25NZXNzYWdlIiwiZXhwb3J0cyIsInRzbmVfMSIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsIlRTTkUiLCJvcHQiLCJyZXR1cm5WIiwidlZhbHVlIiwicGVycGxleGl0eSIsImdldG9wdCIsImZpZWxkIiwiZGVmYXVsdHZhbCIsImdhdXNzUmFuZG9tIiwidSIsInJhbmRuIiwibXUiLCJzdGQiLCJBcnJheUJ1ZmZlciIsImFyciIsInJhbmRuMmQiLCJ1c2VzIiwieGhlcmUiLCJMMiIsIngxIiwieDIiLCJEIiwieDFpIiwieDJpIiwieHRvZCIsIk4iLCJkMnAiLCJuZiIsImhUYXJnZXQiLCJQIiwicHJvdyIsImJldGFtaW4iLCJiZXRhbWF4IiwiYmV0YSIsImRvbmUiLCJtYXh0cmllcyIsInBqIiwibkhlcmUiLCJwT3V0IiwiTjIiLCJpbml0RGF0YVJhdyIsImRpc3RzIiwiaW5pdFNvbHV0aW9uIiwiZ2FpbnMiLCJ5c3RlcCIsImNnIiwiY29zdEdyYWQiLCJjb3N0IiwiZ3JhZCIsInltZWFuIiwiZ2lkIiwic2lkIiwiZ2FpbmlkIiwibmV3Z2FpbiIsIm5ld3NpZCIsImRlYnVnR3JhZCIsInlvbGQiLCJjZzAiLCJjZzEiLCJhbmFseXRpYyIsIm51bWVyaWNhbCIsInBtdWwiLCJxdUFyciIsInFzdW0iLCJkc3VtIiwiZGhlcmUiLCJxdSIsIk5OIiwiUSIsImdzdW0iLCJwcmVtdWx0IiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwibW9kdWxlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsIl9fd2VicGFja19leHBvcnRzX18iLCJPIiwiY2h1bmtJZHMiLCJwcmlvcml0eSIsIm5vdEZ1bGZpbGxlZCIsImZ1bGZpbGxlZCIsImRlZmluaXRpb24iLCJvIiwiY2h1bmtJZCIsImdsb2JhbFRoaXMiLCJGdW5jdGlvbiIsIndpbmRvdyIsInByb3AiLCJzY3JpcHRVcmwiLCJpbXBvcnRTY3JpcHRzIiwibG9jYXRpb24iLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJyZXBsYWNlIiwiaW5zdGFsbGVkQ2h1bmtzIiwiY2h1bmtMb2FkaW5nR2xvYmFsIiwicGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24iLCJtb3JlTW9kdWxlcyIsInJ1bnRpbWUiLCJwb3AiLCJ0aGVuIl0sInNvdXJjZVJvb3QiOiIifQ==
|