@datagrok/peptides 1.17.12 → 1.17.13
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/CHANGELOG.md +6 -0
- package/dist/301.js +2 -2
- package/dist/997.js +2 -2
- package/dist/package-test.js +2 -2
- package/dist/package.js +2 -2
- package/package.json +2 -2
- package/src/model.ts +30 -5
- package/src/package.ts +8 -0
- package/src/utils/types.ts +1 -0
- package/src/viewers/cluster-max-activity-viewer.ts +228 -0
- package/src/viewers/logo-summary.ts +1 -1
- package/src/widgets/settings.ts +6 -2
package/dist/997.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var peptides;(()=>{"use strict";var t,e,n={m:{},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+"",(e=t||(t={})).EUCLIDEAN="EUCLIDEAN",e.MANHATTAN="MANHATTAN";const r=t=>null==t;function s(t,e,n,r){if(n>t[t.length-1])return;const s=t.findIndex((t=>n<t));t.pop(),t.splice(s,0,n),e.pop(),e.splice(s,0,r)}class o{constructor(){this._workerCount=Math.max(navigator.hardwareConcurrency-2,1)}async calcMultiColumn(e,r,s,o=[{}],a=[1],l=t.EUCLIDEAN){const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=e[0].length>2e4?await this.getMinimalThreshold(e,r,o,a,l):0;s<c&&(console.log(`using threshold ${c}`),s=c),o.forEach(((t,e)=>o[e].threshold=s));const u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(23),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,c)=>{const u=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=u&&n({i:new Int32Array(0),j:new Int32Array(0),distance:new Float32Array(0),idx:t}),g[t].postMessage({values:e,startIdx:u,endIdx:f,threshold:s,fnNames:r,opts:o,weights:a,aggregationMethod:l}),g[t].onmessage=({data:{error:e,i:r,j:s,distance:o}})=>{e?(g[t].terminate(),c(e)):(g[t].terminate(),n({i:r,j:s,distance:o,idx:t}))}}));const f=await Promise.all(u),m=f.reduce(((t,e)=>t+e.i.length),0),w=new Int32Array(m),d=new Int32Array(m),p=new Float32Array(m);let y=0;for(const t of f)w.set(t.i,y),d.set(t.j,y),p.set(t.distance,y),y+=t.i.length;return{i:w,j:d,distance:p}}async calc(t,e,n,r={}){return await this.calcMultiColumn([t],[e],n,[r],[1])}async getKNN(t,e,n=15,r={}){return await this.multiColumnKNN([t],[e],n,[r],[1])}async getThresholdKNN(t,e,n=.8,r={}){return await this.multiColumnThresholdKnn([t],[e],n,[r],[1])}async multiColumnThresholdKnn(e,r,s=.8,o,a,l=t.EUCLIDEAN){if(e.length!==r.length||e.length!==o.length||e.length!==a.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=new Array(this._workerCount),u=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(427),n.b))));for(let t=0;t<this._workerCount;t++)c[t]=new Promise(((n,c)=>{const g=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=g&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),u[t].postMessage({values:e,startIdx:g,endIdx:f,fnNames:r,opts:o,threshold:s,weights:a,aggregationMethod:l}),u[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:s}})=>{e?(u[t].terminate(),c(e)):(u[t].terminate(),n({knnDistances:r,knnIndexes:s}))}}));const g=await Promise.all(c),f=new Int32Array(e[0].length);for(const t of g)for(let n=0;n<e[0].length;++n)f[n]+=t.knnIndexes[n]?.length??0;const m={knnDistances:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e]))),knnIndexes:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e])))};for(const t of g)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)m.knnDistances[n][f[n]-1]=t.knnDistances[n][e],m.knnIndexes[n][f[n]-1]=t.knnIndexes[n][e],f[n]-=1;return m}async multiColumnKNN(e,r,o=15,a,l,i=t.EUCLIDEAN){if(e.length!==r.length||e.length!==a.length||e.length!==l.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const h=e[0].length*(e[0].length-1)/2,c=Math.floor(h/this._workerCount),u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(282),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,s)=>{const u=t*c,f=t===this._workerCount-1?h:(t+1)*c;f<=u&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),g[t].postMessage({values:e,startIdx:u,endIdx:f,fnNames:r,opts:a,nNeighbours:o,weights:l,aggregationMethod:i}),g[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:o}})=>{e?(g[t].terminate(),s(e)):(g[t].terminate(),n({knnDistances:r,knnIndexes:o}))}}));const f=await Promise.all(u),m={knnDistances:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(99999))),knnIndexes:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(-1)))};for(const t of f)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)s(m.knnDistances[n],m.knnIndexes[n],t.knnDistances[n][e],t.knnIndexes[n][e]);return m}async getSampleDistances(e,r,s=[],o,a=t.EUCLIDEAN){const l=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(40),n.b))));try{const t=e[0].length*(e[0].length-1)/2,n=Math.floor(t/this._workerCount),i=1e6,h=Math.max(Math.min(t/1e3,i),Math.min(t,i)),c=Math.floor(h/this._workerCount),u=new Array(this._workerCount);for(let i=0;i<this._workerCount;i++)u[i]=new Promise(((h,u)=>{const g=i*n,f=i===this._workerCount-1?t:(i+1)*n;l[i].postMessage({values:e,startIdx:g,endIdx:f,sampleLength:c,fnNames:r,opts:s,weights:o,aggregationMethod:a}),l[i].onmessage=({data:{error:t,distance:e}})=>{l[i].terminate(),t?u(t):h({distance:e})}}));const g=await Promise.all(u),f=g.reduce(((t,e)=>t+e.distance.length),0),m=new Float32Array(f);let w=0;for(const t of g)m.set(t.distance,w),w+=t.distance.length;return m.sort(),m}catch(t){return l?.forEach((t=>t?.terminate())),console.error(t),new Float32Array(1).fill(.5)}}async getMinimalThreshold(e,n,r=[],s,o=t.EUCLIDEAN){try{const t=e.length*(e.length-1)/2,a=await this.getSampleDistances(e,n,r,s,o);return 1-a[Math.floor(7e7/t*a.length)]}catch(t){return console.error(t),.5}}static calcSync(t,e,n,s){const o=[],a=[],l=[];let i=0,h=0,c=0;const u=t.length*(t.length-1)/2;for(;i<u;){const e=r(t[h])||r(t[c])?1:n(t[h],t[c]);1-e>=s&&(o.push(h),a.push(c),l.push(e)),i++,c++,c===t.length&&(h++,c=h+1)}return{i:new Int32Array(o),j:new Int32Array(a),distance:new Float32Array(l)}}}async function a(t,e,n){const r=t.length,s=[],o=[];for(let a=0;a<r;a++)for(let l=a+1;l<r;l++){const r=t[a],i=t[l];e[r]?.[i]>=n&&(s.push(a),o.push(l))}return function(t,e,n){const r=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),o=new Float32Array(n.length).fill(0),a=new Float32Array(n.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;o.fill(0),a.fill(0);for(let n=0;n<t.length;n++){const l=t[n],h=e[n],c=r[l]-r[h],u=s[l]-s[h];Math.abs(c)>=1&&(o[l]-=i*c,o[h]+=i*c),Math.abs(u)>=1&&(a[l]-=i*u,a[h]+=i*u)}for(let t=0;t<n.length;t++){const e=Math.sqrt(o[t]*o[t]+a[t]*a[t]);e>0&&(r[t]+=o[t]/e*i,s[t]+=a[t]/e*i)}}let l=r[0],i=s[0],h=r[0],c=s[0];for(let t=1;t<n.length;t++)l=Math.min(l,r[t]),i=Math.min(i,s[t]),h=Math.max(h,r[t]),c=Math.max(c,s[t]);let u=h-l,g=c-i;0===u&&(u=h);for(let t=0;t<n.length;t++)r[t]=(r[t]-l)/u/2+.5;0===g&&(g=c);for(let t=0;t<n.length;t++)s[t]=(s[t]-i)/g/2+.5;return{embedX:r,embedY:s}}(s,o,t)}const l={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class i{constructor(t={}){this._options={...l,...t}}async transform(t,e){let n=this.toObjectForm(t);if(this._options.maxIterations>0){this.addLoops(n,e),this.normalize(n);for(let t=0;t<this._options.maxIterations;t++)n=this.expand(n,e),this.inflate(n),this.normalize(n)}const{clusters:r,is:s,js:o}=this.assignClusters(n,e);this.correctClusters(r);const a=await this.layout(r,n,e);return{clusters:r,embedX:a.embedX,embedY:a.embedY,is:s,js:o}}correctClusters(t){const e={};for(const n of t)e[n]||(e[n]=0),e[n]++;const n=Object.keys(e).map(Number).sort(((t,n)=>e[t]-e[n])),r={};n.forEach(((t,e)=>r[t]=e+1));for(let e=0;e<t.length;e++)t[e]=r[t[e]]}async layout(t,e,n){const r=new Float32Array(n).fill(0),s=new Float32Array(n).fill(0),o={};t.forEach(((t,e)=>{o[t]||(o[t]=[]),o[t].push(e)}));let l=0;const i=Object.keys(o);i.sort(((t,e)=>o[e].length-o[t].length));let h=6,c=0;for(const t of i){const n=o[t],i=await a(n,e,.001);l===Math.ceil(h/1.5)&&(l=0,c+=5/h,h=Math.ceil(1.5*h));const u=l%h*5/h*1.5;for(let t=0;t<i.embedX.length;t++)r[n[t]]=5*i.embedX[t]/h+u,s[n[t]]=5*i.embedY[t]/h+c;l++}return{embedX:r,embedY:s}}mergeClusters(t,e,n){const r=t[e],s=t[n];for(let e=0;e<t.length;e++)t[e]===s&&(t[e]=r)}assignClusters(t,e){let n=0;const r=[],s=[],o=Math.floor(Math.max(Math.log10(e),2))+1,a=Math.pow(10,o),l=new Array(e).fill(-1);for(const e of Object.keys(t))for(const o of Object.keys(t[e]))Math.round(t[e][o]*a)/a>0&&t[e][o]!==Number(e)&&Number(o)>Number(e)&&(r.push(Number(e)),s.push(Number(o)),-1!==l[Number(e)]&&-1!==l[Number(o)]?l[Number(e)]!==l[Number(o)]&&this.mergeClusters(l,Number(e),Number(o)):-1!==l[Number(e)]?l[Number(o)]=l[Number(e)]:-1!==l[Number(o)]?l[Number(e)]=l[Number(o)]:(n++,l[Number(e)]=n,l[Number(o)]=n));for(let t=0;t<l.length;t++)-1===l[t]&&(n++,l[t]=n);return{clusters:l,is:r,js:s}}toObjectForm(t){const e={};for(let n=0;n<t.i.length;n++)e[t.i[n]]||(e[t.i[n]]={}),e[t.i[n]][t.j[n]]=1-t.distance[n],e[t.j[n]]||(e[t.j[n]]={}),e[t.j[n]][t.i[n]]=1-t.distance[n];return e}addLoops(t,e){for(let n=0;n<e;n++)t[n]||(t[n]={}),t[n][n]=this._options.multFactor}normalize(t){for(const e of Object.keys(t)){const n=t[e];let r=0;for(const t of Object.keys(n))r+=n[t];if(0!==r)for(const s of Object.keys(n))t[e][s]/=r}}expand(t,e){const n={},r=Math.floor(Math.max(Math.log10(e),2))+1,s=Math.pow(10,r);for(let r=0;r<e;r++)if(t[r]){n[r]={};for(let o=r;o<e;o++){if(!t[r]?.[o])continue;const e=this.getExpandValue(t,r,o);Math.round(e*s)/s>0&&(n[r][o]=e,n[o]||(n[o]={}),n[o][r]=e)}}return n}inflate(t){for(const e of Object.keys(t)){const n=t[e];for(const r of Object.keys(n))t[e][r]=Math.pow(t[e][r],this._options.inflateFactor)}}getExpandValue(t,e,n){let r=0;const s=Object.keys(t[e]??{}),o=Object.keys(t[n]??{});for(const a of s)o.includes(a)&&(r+=t[e][a]*t[n][a]);return r}}onmessage=async t=>{const{data:e,threshold:n,weights:r,aggregationMethod:s,distanceFnArgs:a,distanceFns:l,maxIterations:h}=t.data,c=await(new o).calcMultiColumn(e,l,n/100,a,r,s),u=await new i({maxIterations:h??5}).transform(c,e[0].length);postMessage({res:u})},peptides={}})();
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTk3LmpzIiwibWFwcGluZ3MiOiJvQ0FBVyxFQUNBQSxFQ0FQQyxFQUFzQixDQUcxQkEsRSxHQ0hBQSxFQUF5QkMsR0FFWkEsRUFBVSxPQ0h2QkQsRUFBb0JFLEVBQUksV0FDdkIsR0FBMEIsaUJBQWZDLFdBQXlCLE9BQU9BLFdBQzNDLElBQ0MsT0FBT0MsTUFBUSxJQUFJQyxTQUFTLGNBQWIsRUFDaEIsQ0FBRSxNQUFPQyxHQUNSLEdBQXNCLGlCQUFYQyxPQUFxQixPQUFPQSxNQUN4QyxDQUNBLENBUHVCLEdDQXhCUCxFQUFvQlEsRUFBSSxDQUFDQyxFQUFLQyxJQUFVQyxPQUFPQyxVQUFVQyxlQUFlQyxLQUFLTCxFQUFLQyxHLE1DQWxGLElBQUlLLEVBQ0FmLEVBQW9CRSxFQUFFYyxnQkFBZUQsRUFBWWYsRUFBb0JFLEVBQUVlLFNBQVcsSUFDdEYsSUFBSUMsRUFBV2xCLEVBQW9CRSxFQUFFZ0IsU0FDckMsSUFBS0gsR0FBYUcsSUFDYkEsRUFBU0MsZ0JBQ1pKLEVBQVlHLEVBQVNDLGNBQWNDLE1BQy9CTCxHQUFXLENBQ2YsSUFBSU0sRUFBVUgsRUFBU0kscUJBQXFCLFVBQzVDLEdBQUdELEVBQVFFLE9BRVYsSUFEQSxJQUFJQyxFQUFJSCxFQUFRRSxPQUFTLEVBQ2xCQyxHQUFLLElBQU1ULEdBQVdBLEVBQVlNLEVBQVFHLEtBQUtKLEdBRXhELENBSUQsSUFBS0wsRUFBVyxNQUFNLElBQUlVLE1BQU0seURBQ2hDVixFQUFZQSxFQUFVVyxRQUFRLE9BQVEsSUFBSUEsUUFBUSxRQUFTLElBQUlBLFFBQVEsWUFBYSxLQUNwRjFCLEVBQW9CMkIsRUFBSVosQyxLQ2xCeEJmLEVBQW9CNEIsRUFBSUMsS0FBS1osU0FBVyxJTkM3QmxCLEVBR1IsSUFBK0IsRUFBNkIsQ0FBQyxJQUZ0QixVQUFJLFlBQzFDQSxFQUFzQyxVQUFJLFlPRnZDLE1BQU0rQixFQUFTQyxHQUFNQSxRQUNyQixTQUFTQyxFQUFjQyxFQUFhQyxFQUFTQyxFQUFLQyxHQUNyRCxHQUFJRCxFQUFNRixFQUFZQSxFQUFZVixPQUFTLEdBQ3ZDLE9BQ0osTUFBTWMsRUFBY0osRUFBWUssV0FBV0MsR0FBTUosRUFBTUksSUFDdkROLEVBQVlPLE1BQ1pQLEVBQVlRLE9BQU9KLEVBQWEsRUFBR0YsR0FDbkNELEVBQVFNLE1BQ1JOLEVBQVFPLE9BQU9KLEVBQWEsRUFBR0QsRUFDbkMsQ0NSTyxNQUFNTSxFQUNULFdBQUFDLEdBQ0l2QyxLQUFLd0MsYUFBZUMsS0FBS0MsSUFBSUMsVUFBVUMsb0JBQXNCLEVBQUcsRUFDcEUsQ0FDQSxxQkFBTUMsQ0FBZ0JDLEVBQVFDLEVBQVNDLEVBQVdDLEVBQU8sQ0FBQyxDQUFDLEdBQUlDLEVBQVUsQ0FBQyxHQUFJQyxFQUFvQixFQUEyQkMsV0FDekgsTUFBTUMsRUFBVVAsRUFBTyxHQUFHM0IsUUFBVTJCLEVBQU8sR0FBRzNCLE9BQVMsR0FBSyxFQUN0RG1DLEVBQVliLEtBQUtjLE1BQU1GLEVBQVVyRCxLQUFLd0MsY0FDdENnQixFQUFlVixFQUFPLEdBQUczQixPQUFTLFVBQzlCbkIsS0FBS3lELG9CQUFvQlgsRUFBUUMsRUFBU0UsRUFBTUMsRUFBU0MsR0FBcUIsRUFDcEZILEVBQVlRLElBQ1pFLFFBQVFDLElBQUksbUJBQW1CSCxLQUMvQlIsRUFBWVEsR0FFaEJQLEVBQUtXLFNBQVEsQ0FBQ0MsRUFBR3pDLElBQU02QixFQUFLN0IsR0FBYyxVQUFJNEIsSUFDOUMsTUFBTWMsRUFBVyxJQUFJQyxNQUFNL0QsS0FBS3dDLGNBQzFCd0IsRUFBVSxJQUFJRCxNQUFNL0QsS0FBS3dDLGNBQzFCeUIsS0FBSyxNQUFNQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLG9CQUM3QyxJQUFLLElBQUlDLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt3QyxhQUFjNkIsSUFDdkNQLEVBQVNPLEdBQU8sSUFBSUMsU0FBUSxDQUFDQyxFQUFlQyxLQUN4QyxNQUFNQyxFQUFXSixFQUFNZixFQUNqQm9CLEVBQVNMLElBQVFyRSxLQUFLd0MsYUFBZSxFQUFJYSxHQUFXZ0IsRUFBTSxHQUFLZixFQUNqRW9CLEdBQVVELEdBQ1ZGLEVBQWMsQ0FBRW5ELEVBQUcsSUFBSXVELFdBQVcsR0FBSUMsRUFBRyxJQUFJRCxXQUFXLEdBQUlFLFNBQVUsSUFBSUMsYUFBYSxHQUFJVCxRQUMvRkwsRUFBUUssR0FBS1UsWUFBWSxDQUFFakMsU0FBUTJCLFdBQVVDLFNBQVExQixZQUFXRCxVQUFTRSxPQUFNQyxVQUFTQyxzQkFDeEZhLEVBQVFLLEdBQUtXLFVBQVksRUFBR0MsTUFBUUMsUUFBTzlELElBQUd3RCxJQUFHQyxnQkFDekNLLEdBQ0FsQixFQUFRSyxHQUFLYyxZQUNiWCxFQUFhVSxLQUdibEIsRUFBUUssR0FBS2MsWUFDYlosRUFBYyxDQUFFbkQsSUFBR3dELElBQUdDLFdBQVVSLFFBQ3BDLENBQ0gsSUFHVCxNQUFNZSxRQUFnQmQsUUFBUWUsSUFBSXZCLEdBQzVCd0IsRUFBV0YsRUFBUUcsUUFBTyxDQUFDQyxFQUFLQyxJQUFRRCxFQUFNQyxFQUFJckUsRUFBRUQsUUFBUSxHQUM1REMsRUFBSSxJQUFJdUQsV0FBV1csR0FDbkJWLEVBQUksSUFBSUQsV0FBV1csR0FDbkJULEVBQVcsSUFBSUMsYUFBYVEsR0FDbEMsSUFBSUksRUFBUyxFQUViLElBQUssTUFBTUMsS0FBT1AsRUFDZGhFLEVBQUV3RSxJQUFJRCxFQUFJdkUsRUFBR3NFLEdBQ2JkLEVBQUVnQixJQUFJRCxFQUFJZixFQUFHYyxHQUNiYixFQUFTZSxJQUFJRCxFQUFJZCxTQUFVYSxHQUMzQkEsR0FBVUMsRUFBSXZFLEVBQUVELE9BRXBCLE1BQU8sQ0FBRUMsSUFBR3dELElBQUdDLFdBQ25CLENBQ0EsVUFBTWdCLENBQUsvQyxFQUFRZ0QsRUFBUTlDLEVBQVdDLEVBQU8sQ0FBQyxHQUUxQyxhQUFhakQsS0FBSzZDLGdCQUFnQixDQUFDQyxHQUFTLENBQUNnRCxHQUFTOUMsRUFBVyxDQUFDQyxHQUFPLENBQUMsR0FDOUUsQ0FDQSxZQUFNOEMsQ0FBT2pELEVBQVFnRCxFQUFRRSxFQUFjLEdBQUkvQyxFQUFPLENBQUMsR0FDbkQsYUFBYWpELEtBQUtpRyxlQUFlLENBQUNuRCxHQUFTLENBQUNnRCxHQUFTRSxFQUFhLENBQUMvQyxHQUFPLENBQUMsR0FDL0UsQ0FDQSxxQkFBTWlELENBQWdCcEQsRUFBUWdELEVBQVE5QyxFQUFZLEdBQUtDLEVBQU8sQ0FBQyxHQUMzRCxhQUFhakQsS0FBS21HLHdCQUF3QixDQUFDckQsR0FBUyxDQUFDZ0QsR0FBUzlDLEVBQVcsQ0FBQ0MsR0FBTyxDQUFDLEdBQ3RGLENBQ0EsNkJBQU1rRCxDQUF3QnJELEVBQVFDLEVBQVNDLEVBQVksR0FBS0MsRUFBTUMsRUFBU0MsRUFBb0IsRUFBMkJDLFdBQzFILEdBQUlOLEVBQU8zQixTQUFXNEIsRUFBUTVCLFFBQVUyQixFQUFPM0IsU0FBVzhCLEVBQUs5QixRQUFVMkIsRUFBTzNCLFNBQVcrQixFQUFRL0IsT0FDL0YsTUFBTSxJQUFJRSxNQUFNLHNGQUNwQixHQUFJeUIsRUFBT3NELE1BQU1qRSxHQUFNQSxFQUFFaEIsU0FBVzJCLEVBQU8sR0FBRzNCLFNBQzFDLE1BQU0sSUFBSUUsTUFBTSxpREFDcEIsTUFBTWdDLEVBQVVQLEVBQU8sR0FBRzNCLFFBQVUyQixFQUFPLEdBQUczQixPQUFTLEdBQUssRUFDdERtQyxFQUFZYixLQUFLYyxNQUFNRixFQUFVckQsS0FBS3dDLGNBQ3RDc0IsRUFBVyxJQUFJQyxNQUFNL0QsS0FBS3dDLGNBQzFCd0IsRUFBVSxJQUFJRCxNQUFNL0QsS0FBS3dDLGNBQzFCeUIsS0FBSyxNQUFNQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLHFCQUM3QyxJQUFLLElBQUlDLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt3QyxhQUFjNkIsSUFDdkNQLEVBQVNPLEdBQU8sSUFBSUMsU0FBUSxDQUFDQyxFQUFlQyxLQUN4QyxNQUFNQyxFQUFXSixFQUFNZixFQUNqQm9CLEVBQVNMLElBQVFyRSxLQUFLd0MsYUFBZSxFQUFJYSxHQUFXZ0IsRUFBTSxHQUFLZixFQUNqRW9CLEdBQVVELEdBQ1ZGLEVBQWMsQ0FBRThCLGFBQWMsSUFBSXRDLE1BQU0sR0FBSXVDLFdBQVksSUFBSXZDLE1BQU0sS0FDdEVDLEVBQVFLLEdBQUtVLFlBQVksQ0FBRWpDLFNBQVEyQixXQUFVQyxTQUFRM0IsVUFBU0UsT0FBTUQsWUFBV0UsVUFBU0Msc0JBQ3hGYSxFQUFRSyxHQUFLVyxVQUFZLEVBQUdDLE1BQVFDLFFBQU9tQixlQUFjQyxrQkFDakRwQixHQUNBbEIsRUFBUUssR0FBS2MsWUFDYlgsRUFBYVUsS0FHYmxCLEVBQVFLLEdBQUtjLFlBQ2JaLEVBQWMsQ0FBRThCLGVBQWNDLGVBQ2xDLENBQ0gsSUFHVCxNQUFNbEIsUUFBZ0JkLFFBQVFlLElBQUl2QixHQUM1QnlDLEVBQVcsSUFBSTVCLFdBQVc3QixFQUFPLEdBQUczQixRQUMxQyxJQUFLLE1BQU13RSxLQUFPUCxFQUNkLElBQUssSUFBSWhFLEVBQUksRUFBR0EsRUFBSTBCLEVBQU8sR0FBRzNCLFNBQVVDLEVBQ3BDbUYsRUFBU25GLElBQU11RSxFQUFJVyxXQUFXbEYsSUFBSUQsUUFBVSxFQUVwRCxNQUFNcUYsRUFBUyxDQUNYSCxhQUFjLElBQUl0QyxNQUFNakIsRUFBTyxHQUFHM0IsUUFBUThDLEtBQUssTUFBTUMsS0FBSSxDQUFDTCxFQUFHekMsSUFBTSxJQUFJMkMsTUFBTXdDLEVBQVNuRixNQUN0RmtGLFdBQVksSUFBSXZDLE1BQU1qQixFQUFPLEdBQUczQixRQUFROEMsS0FBSyxNQUFNQyxLQUFJLENBQUNMLEVBQUd6QyxJQUFNLElBQUkyQyxNQUFNd0MsRUFBU25GLE9BRXhGLElBQUssTUFBTXVFLEtBQU9QLEVBQ2QsSUFBSyxJQUFJaEUsRUFBSSxFQUFHQSxFQUFJMEIsRUFBTyxHQUFHM0IsU0FBVUMsRUFDcEMsSUFBSyxJQUFJd0QsRUFBSSxFQUFHQSxFQUFJZSxFQUFJVSxhQUFhakYsSUFBSUQsU0FBZXlELEVBQ3BENEIsRUFBT0gsYUFBYWpGLEdBQUdtRixFQUFTbkYsR0FBSyxHQUFLdUUsRUFBSVUsYUFBYWpGLEdBQUd3RCxHQUM5RDRCLEVBQU9GLFdBQVdsRixHQUFHbUYsRUFBU25GLEdBQUssR0FBS3VFLEVBQUlXLFdBQVdsRixHQUFHd0QsR0FDMUQyQixFQUFTbkYsSUFBTSxFQUkzQixPQUFPb0YsQ0FDWCxDQUNBLG9CQUFNUCxDQUFlbkQsRUFBUUMsRUFBU2lELEVBQWMsR0FBSS9DLEVBQU1DLEVBQVNDLEVBQW9CLEVBQTJCQyxXQUNsSCxHQUFJTixFQUFPM0IsU0FBVzRCLEVBQVE1QixRQUFVMkIsRUFBTzNCLFNBQVc4QixFQUFLOUIsUUFBVTJCLEVBQU8zQixTQUFXK0IsRUFBUS9CLE9BQy9GLE1BQU0sSUFBSUUsTUFBTSxzRkFDcEIsR0FBSXlCLEVBQU9zRCxNQUFNakUsR0FBTUEsRUFBRWhCLFNBQVcyQixFQUFPLEdBQUczQixTQUMxQyxNQUFNLElBQUlFLE1BQU0saURBQ3BCLE1BQU1nQyxFQUFVUCxFQUFPLEdBQUczQixRQUFVMkIsRUFBTyxHQUFHM0IsT0FBUyxHQUFLLEVBQ3REbUMsRUFBWWIsS0FBS2MsTUFBTUYsRUFBVXJELEtBQUt3QyxjQUN0Q3NCLEVBQVcsSUFBSUMsTUFBTS9ELEtBQUt3QyxjQUMxQndCLEVBQVUsSUFBSUQsTUFBTS9ELEtBQUt3QyxjQUMxQnlCLEtBQUssTUFBTUMsS0FBSSxJQUFNLElBQUlDLE9BQU8sSUFBSUMsSUFBSSxxQkFDN0MsSUFBSyxJQUFJQyxFQUFNLEVBQUdBLEVBQU1yRSxLQUFLd0MsYUFBYzZCLElBQ3ZDUCxFQUFTTyxHQUFPLElBQUlDLFNBQVEsQ0FBQ0MsRUFBZUMsS0FDeEMsTUFBTUMsRUFBV0osRUFBTWYsRUFDakJvQixFQUFTTCxJQUFRckUsS0FBS3dDLGFBQWUsRUFBSWEsR0FBV2dCLEVBQU0sR0FBS2YsRUFDakVvQixHQUFVRCxHQUNWRixFQUFjLENBQUU4QixhQUFjLElBQUl0QyxNQUFNLEdBQUl1QyxXQUFZLElBQUl2QyxNQUFNLEtBQ3RFQyxFQUFRSyxHQUFLVSxZQUFZLENBQUVqQyxTQUFRMkIsV0FBVUMsU0FBUTNCLFVBQVNFLE9BQU0rQyxjQUFhOUMsVUFBU0Msc0JBQzFGYSxFQUFRSyxHQUFLVyxVQUFZLEVBQUdDLE1BQVFDLFFBQU9tQixlQUFjQyxrQkFDakRwQixHQUNBbEIsRUFBUUssR0FBS2MsWUFDYlgsRUFBYVUsS0FHYmxCLEVBQVFLLEdBQUtjLFlBQ2JaLEVBQWMsQ0FBRThCLGVBQWNDLGVBQ2xDLENBQ0gsSUFHVCxNQUFNbEIsUUFBZ0JkLFFBQVFlLElBQUl2QixHQUM1QjBDLEVBQVMsQ0FDWEgsYUFBYyxJQUFJdEMsTUFBTWpCLEVBQU8sR0FBRzNCLFFBQVE4QyxLQUFLLE1BQU1DLEtBQUksSUFBTSxJQUFJSCxNQUFNaUMsR0FBYS9CLEtBQUssU0FDM0ZxQyxXQUFZLElBQUl2QyxNQUFNakIsRUFBTyxHQUFHM0IsUUFBUThDLEtBQUssTUFBTUMsS0FBSSxJQUFNLElBQUlILE1BQU1pQyxHQUFhL0IsTUFBTSxNQUU5RixJQUFLLE1BQU0wQixLQUFPUCxFQUNkLElBQUssSUFBSWhFLEVBQUksRUFBR0EsRUFBSTBCLEVBQU8sR0FBRzNCLFNBQVVDLEVBQ3BDLElBQUssSUFBSXdELEVBQUksRUFBR0EsRUFBSWUsRUFBSVUsYUFBYWpGLElBQUlELFNBQWV5RCxFQUNwRGhELEVBQWM0RSxFQUFPSCxhQUFhakYsR0FBSW9GLEVBQU9GLFdBQVdsRixHQUFJdUUsRUFBSVUsYUFBYWpGLEdBQUd3RCxHQUFJZSxFQUFJVyxXQUFXbEYsR0FBR3dELElBR2xILE9BQU80QixDQUNYLENBQ0Esd0JBQU1DLENBQW1CM0QsRUFBUUMsRUFBU0UsRUFBTyxHQUFJQyxFQUFTQyxFQUFvQixFQUEyQkMsV0FDekcsTUFBTXNELEVBQW1CLElBQUkzQyxNQUFNL0QsS0FBS3dDLGNBQWN5QixLQUFLLE1BQ3REQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLG9CQUNsQyxJQUNJLE1BQU1mLEVBQVVQLEVBQU8sR0FBRzNCLFFBQVUyQixFQUFPLEdBQUczQixPQUFTLEdBQUssRUFDdERtQyxFQUFZYixLQUFLYyxNQUFNRixFQUFVckQsS0FBS3dDLGNBQ3RDbUUsRUFBZ0IsSUFDaEJDLEVBQWFuRSxLQUFLQyxJQUFJRCxLQUFLb0UsSUFBSXhELEVBQVUsSUFBTXNELEdBQWdCbEUsS0FBS29FLElBQUl4RCxFQUFTc0QsSUFDakZHLEVBQXVCckUsS0FBS2MsTUFBTXFELEVBQWE1RyxLQUFLd0MsY0FDcER1RSxFQUFZLElBQUloRCxNQUFNL0QsS0FBS3dDLGNBQ2pDLElBQUssSUFBSTZCLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt3QyxhQUFjNkIsSUFDdkMwQyxFQUFVMUMsR0FBTyxJQUFJQyxTQUFRLENBQUNDLEVBQWVDLEtBQ3pDLE1BQU1DLEVBQVdKLEVBQU1mLEVBQ2pCb0IsRUFBU0wsSUFBUXJFLEtBQUt3QyxhQUFlLEVBQUlhLEdBQVdnQixFQUFNLEdBQUtmLEVBQ3JFb0QsRUFBaUJyQyxHQUFLVSxZQUFZLENBQzlCakMsT0FBUUEsRUFBUTJCLFdBQVVDLFNBQVFzQyxhQUFjRixFQUNoRC9ELFVBQVNFLE9BQU1DLFVBQVNDLHNCQUU1QnVELEVBQWlCckMsR0FBS1csVUFBWSxFQUFHQyxNQUFRQyxRQUFPTCxnQkFDaEQ2QixFQUFpQnJDLEdBQUtjLFlBQ2xCRCxFQUNBVixFQUFhVSxHQUViWCxFQUFjLENBQUVNLFlBQVcsQ0FDbEMsSUFHVCxNQUFNTyxRQUFnQmQsUUFBUWUsSUFBSTBCLEdBQzVCekIsRUFBV0YsRUFBUUcsUUFBTyxDQUFDQyxFQUFLQyxJQUFRRCxFQUFNQyxFQUFJWixTQUFTMUQsUUFBUSxHQUNuRTBELEVBQVcsSUFBSUMsYUFBYVEsR0FDbEMsSUFBSUksRUFBUyxFQUNiLElBQUssTUFBTUMsS0FBT1AsRUFDZFAsRUFBU2UsSUFBSUQsRUFBSWQsU0FBVWEsR0FDM0JBLEdBQVVDLEVBQUlkLFNBQVMxRCxPQUczQixPQURBMEQsRUFBU29DLE9BQ0ZwQyxDQUNYLENBQ0EsTUFBTzNFLEdBR0gsT0FGQXdHLEdBQWtCOUMsU0FBU3NELEdBQU1BLEdBQUcvQixjQUNwQ3pCLFFBQVF3QixNQUFNaEYsR0FDUCxJQUFJNEUsYUFBYSxHQUFHYixLQUFLLEdBQ3BDLENBQ0osQ0FDQSx5QkFBTVIsQ0FBb0JYLEVBQVFDLEVBQVNFLEVBQU8sR0FBSUMsRUFBU0MsRUFBb0IsRUFBMkJDLFdBSzFHLElBQ0ksTUFBTUMsRUFBVVAsRUFBTzNCLFFBQVUyQixFQUFPM0IsT0FBUyxHQUFLLEVBQ2hEMEQsUUFBaUI3RSxLQUFLeUcsbUJBQW1CM0QsRUFBUUMsRUFBU0UsRUFBTUMsRUFBU0MsR0FJL0UsT0FGa0IsRUFBSTBCLEVBREFwQyxLQUFLYyxNQUpILElBSStCRixFQUFVd0IsRUFBUzFELFFBSTlFLENBQ0EsTUFBT2pCLEdBRUgsT0FEQXdELFFBQVF3QixNQUFNaEYsR0FDUCxFQUNYLENBQ0osQ0FDQSxlQUFPaUgsQ0FBU3JFLEVBQVFnRCxFQUFRc0IsRUFBWXBFLEdBQ3hDLE1BQU01QixFQUFJLEdBQ0p3RCxFQUFJLEdBQ0p5QyxFQUFZLEdBQ2xCLElBQUlDLEVBQU0sRUFDTkMsRUFBSyxFQUNMQyxFQUFLLEVBQ1QsTUFBTWxDLEVBQVd4QyxFQUFPM0IsUUFBVTJCLEVBQU8zQixPQUFTLEdBQUssRUFDdkQsS0FBT21HLEVBQU1oQyxHQUFVLENBRW5CLE1BQU1tQyxFQUFTL0YsRUFBTW9CLEVBQU95RSxLQUFTN0YsRUFBTW9CLEVBQU8wRSxJQUNULEVBQXJDSixFQUFXdEUsRUFBT3lFLEdBQUt6RSxFQUFPMEUsSUFDZixFQUFJQyxHQUNMekUsSUFDZDVCLEVBQUVzRyxLQUFLSCxHQUNQM0MsRUFBRThDLEtBQUtGLEdBQ1BILEVBQVVLLEtBQUtELElBRW5CSCxJQUNBRSxJQUNJQSxJQUFPMUUsRUFBTzNCLFNBQ2RvRyxJQUNBQyxFQUFLRCxFQUFLLEVBRWxCLENBSUEsTUFBTyxDQUFFbkcsRUFITSxJQUFJdUQsV0FBV3ZELEdBR1Z3RCxFQUZMLElBQUlELFdBQVdDLEdBRUNDLFNBRFQsSUFBSUMsYUFBYXVDLEdBRTNDLEVDdFBHTSxlQUFlQyxFQUFVQyxFQUFTQyxFQUFjOUUsR0FDbkQsTUFBTStFLEVBQUlGLEVBQVExRyxPQUNaNkcsRUFBSyxHQUNMQyxFQUFLLEdBQ1gsSUFBSyxJQUFJN0csRUFBSSxFQUFHQSxFQUFJMkcsRUFBRzNHLElBQ25CLElBQUssSUFBSXdELEVBQUl4RCxFQUFJLEVBQUd3RCxFQUFJbUQsRUFBR25ELElBQUssQ0FDNUIsTUFBTXNELEVBQUlMLEVBQVF6RyxHQUNaSSxFQUFJcUcsRUFBUWpELEdBQ2RrRCxFQUFhSSxLQUFLMUcsSUFBTXdCLElBQ3hCZ0YsRUFBR04sS0FBS3RHLEdBQ1I2RyxFQUFHUCxLQUFLOUMsR0FFaEIsQ0FFSixPQUVKLFNBQTZCb0QsRUFBSUMsRUFBSUosR0FDakMsTUFBTU0sRUFBUyxJQUFJckQsYUFBYStDLEVBQVExRyxRQUFROEMsS0FBSyxHQUFHQyxLQUFJLElBQXNCLEdBQWhCekIsS0FBSzJGLFdBQ2pFQyxFQUFTLElBQUl2RCxhQUFhK0MsRUFBUTFHLFFBQVE4QyxLQUFLLEdBQUdDLEtBQUksSUFBc0IsR0FBaEJ6QixLQUFLMkYsV0FFakVFLEVBQWMsSUFBSXhELGFBQWErQyxFQUFRMUcsUUFBUThDLEtBQUssR0FDcERzRSxFQUFjLElBQUl6RCxhQUFhK0MsRUFBUTFHLFFBQVE4QyxLQUFLLEdBQzFELElBQUssSUFBSTdDLEVBQUksRUFBR0EsRUFIRyxJQUdhQSxJQUFLLENBQ2pDLE1BQU1vSCxFQUFlLEVBQUlwSCxFQUpWLElBS2ZrSCxFQUFZckUsS0FBSyxHQUNqQnNFLEVBQVl0RSxLQUFLLEdBQ2pCLElBQUssSUFBSUksRUFBTSxFQUFHQSxFQUFNMkQsRUFBRzdHLE9BQVFrRCxJQUFPLENBQ3RDLE1BQU02RCxFQUFJRixFQUFHM0QsR0FDUDdDLEVBQUl5RyxFQUFHNUQsR0FDUG9FLEVBQUtOLEVBQU9ELEdBQUtDLEVBQU8zRyxHQUN4QmtILEVBQUtMLEVBQU9ILEdBQUtHLEVBQU83RyxHQUsxQmlCLEtBQUtrRyxJQUFJRixJQUFPLElBQ2hCSCxFQUFZSixJQUFNTSxFQUFjQyxFQUNoQ0gsRUFBWTlHLElBQU1nSCxFQUFjQyxHQUVoQ2hHLEtBQUtrRyxJQUFJRCxJQUFPLElBQ2hCSCxFQUFZTCxJQUFNTSxFQUFjRSxFQUNoQ0gsRUFBWS9HLElBQU1nSCxFQUFjRSxFQUl4QyxDQUNBLElBQUssSUFBSXJFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFBTyxDQUMzQyxNQUFNdUUsRUFBVW5HLEtBQUtvRyxLQUFLUCxFQUFZakUsR0FBT2lFLEVBQVlqRSxHQUFPa0UsRUFBWWxFLEdBQU9rRSxFQUFZbEUsSUFDM0Z1RSxFQUFVLElBQ1ZULEVBQU85RCxJQUFRaUUsRUFBWWpFLEdBQU91RSxFQUFVSixFQUM1Q0gsRUFBT2hFLElBQVFrRSxFQUFZbEUsR0FBT3VFLEVBQVVKLEVBRXBELENBQ0osQ0FFQSxJQUFJTSxFQUFPWCxFQUFPLEdBQ2RZLEVBQU9WLEVBQU8sR0FDZFcsRUFBT2IsRUFBTyxHQUNkYyxFQUFPWixFQUFPLEdBQ2xCLElBQUssSUFBSWhFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFDcEN5RSxFQUFPckcsS0FBS29FLElBQUlpQyxFQUFNWCxFQUFPOUQsSUFDN0IwRSxFQUFPdEcsS0FBS29FLElBQUlrQyxFQUFNVixFQUFPaEUsSUFDN0IyRSxFQUFPdkcsS0FBS0MsSUFBSXNHLEVBQU1iLEVBQU85RCxJQUM3QjRFLEVBQU94RyxLQUFLQyxJQUFJdUcsRUFBTVosRUFBT2hFLElBRWpDLElBQUk2RSxFQUFTRixFQUFPRixFQUNoQkssRUFBU0YsRUFBT0YsRUFDTCxJQUFYRyxJQUNBQSxFQUFTRixHQUNiLElBQUssSUFBSTNFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFDcEM4RCxFQUFPOUQsSUFBUThELEVBQU85RCxHQUFPeUUsR0FBUUksRUFBUyxFQUFJLEdBQ3ZDLElBQVhDLElBQ0FBLEVBQVNGLEdBQ2IsSUFBSyxJQUFJNUUsRUFBTSxFQUFHQSxFQUFNd0QsRUFBUTFHLE9BQVFrRCxJQUNwQ2dFLEVBQU9oRSxJQUFRZ0UsRUFBT2hFLEdBQU8wRSxHQUFRSSxFQUFTLEVBQUksR0FDdEQsTUFBTyxDQUFFaEIsU0FBUUUsU0FDckIsQ0E5RFdlLENBQW9CcEIsRUFBSUMsRUFBSUosRUFDdkMsQ0NkTyxNQUFNd0IsRUFBb0IsQ0FDN0JDLGFBQWMsRUFDZEMsY0FBZSxFQUNmQyxjQUFlLEVBQ2ZDLFdBQVksR0FFVCxNQUFNQyxFQUNULFdBQUFuSCxDQUFZVSxFQUFPLENBQUMsR0FDaEJqRCxLQUFLMkosU0FBVyxJQUFLTixLQUFzQnBHLEVBQy9DLENBQ0EsZUFBTTJHLENBQVVDLEVBQWNDLEdBRzFCLElBQUloQyxFQUFlOUgsS0FBSytKLGFBQWFGLEdBQ3JDLEdBQUk3SixLQUFLMkosU0FBU0osY0FBZ0IsRUFBRyxDQUNqQ3ZKLEtBQUtnSyxTQUFTbEMsRUFBY2dDLEdBQzVCOUosS0FBS2lLLFVBQVVuQyxHQUNmLElBQUssSUFBSTFHLEVBQUksRUFBR0EsRUFBSXBCLEtBQUsySixTQUFTSixjQUFlbkksSUFDN0MwRyxFQUFlOUgsS0FBS2tLLE9BQU9wQyxFQUFjZ0MsR0FDekM5SixLQUFLbUssUUFBUXJDLEdBQ2I5SCxLQUFLaUssVUFBVW5DLEVBRXZCLENBQ0EsTUFBTSxTQUFFc0MsRUFBUSxHQUFFcEMsRUFBRSxHQUFFQyxHQUFPakksS0FBS3FLLGVBQWV2QyxFQUFjZ0MsR0FDL0Q5SixLQUFLc0ssZ0JBQWdCRixHQUNyQixNQUFNRyxRQUFtQnZLLEtBQUt3SyxPQUFPSixFQUFVdEMsRUFBY2dDLEdBQzdELE1BQU8sQ0FBRU0sV0FBVWpDLE9BQVFvQyxFQUFXcEMsT0FBUUUsT0FBUWtDLEVBQVdsQyxPQUFRTCxLQUFJQyxLQUNqRixDQUNBLGVBQUFxQyxDQUFnQkYsR0FDWixNQUFNSyxFQUFpQixDQUFDLEVBQ3hCLElBQUssTUFBTTVDLEtBQVd1QyxFQUNiSyxFQUFlNUMsS0FDaEI0QyxFQUFlNUMsR0FBVyxHQUM5QjRDLEVBQWU1QyxLQUVuQixNQUFNNkMsRUFBZ0JuSyxPQUFPb0ssS0FBS0YsR0FBZ0J2RyxJQUFJMEcsUUFBUTNELE1BQUssQ0FBQ2lCLEVBQUcxRyxJQUFNaUosRUFBZXZDLEdBQUt1QyxFQUFlakosS0FDMUdxSixFQUFhLENBQUMsRUFDcEJILEVBQWM5RyxTQUFRLENBQUNrSCxFQUFZMUosSUFBTXlKLEVBQVdDLEdBQWMxSixFQUFJLElBQ3RFLElBQUssSUFBSUEsRUFBSSxFQUFHQSxFQUFJZ0osRUFBU2pKLE9BQVFDLElBQ2pDZ0osRUFBU2hKLEdBQUt5SixFQUFXVCxFQUFTaEosR0FXMUMsQ0FDQSxZQUFNb0osQ0FBT0osRUFBVVAsRUFBY0MsR0FDakMsTUFBTTNCLEVBQVMsSUFBSXJELGFBQWFnRixHQUFPN0YsS0FBSyxHQUN0Q29FLEVBQVMsSUFBSXZELGFBQWFnRixHQUFPN0YsS0FBSyxHQUN0QzRHLEVBQWEsQ0FBQyxFQUNwQlQsRUFBU3hHLFNBQVEsQ0FBQ2lFLEVBQVN6RyxLQUNsQnlKLEVBQVdoRCxLQUNaZ0QsRUFBV2hELEdBQVcsSUFDMUJnRCxFQUFXaEQsR0FBU0gsS0FBS3RHLEVBQUUsSUFJL0IsSUFBSTJKLEVBQWEsRUFDakIsTUFBTUMsRUFBcUJ6SyxPQUFPb0ssS0FBS0UsR0FDdkNHLEVBQW1CL0QsTUFBSyxDQUFDaUIsRUFBRzFHLElBQU1xSixFQUFXckosR0FBR0wsT0FBUzBKLEVBQVczQyxHQUFHL0csU0FDdkUsSUFBSThKLEVBQVMsRUFDVEMsRUFBVSxFQUVkLElBQUssTUFBTUMsS0FBZUgsRUFBb0IsQ0FDMUMsTUFBTW5ELEVBQVVnRCxFQUFXTSxHQUNyQlosUUFBbUIzQyxFQUFVQyxFQUFTZ0MsRUFBYyxNQUN0RGtCLElBQWV0SSxLQUFLMkksS0FBS0gsRUFBUyxPQUNsQ0YsRUFBYSxFQUNiRyxHQU5XLEVBTWFELEVBQ3hCQSxFQUFTeEksS0FBSzJJLEtBQWMsSUFBVEgsSUFFdkIsTUFBTUksRUFBWU4sRUFBYUUsRUFUaEIsRUFTdUNBLEVBQVUsSUFFaEUsSUFBSyxJQUFJN0osRUFBSSxFQUFHQSxFQUFJbUosRUFBV3BDLE9BQU9oSCxPQUFRQyxJQUMxQytHLEVBQU9OLEVBQVF6RyxJQVpKLEVBWVVtSixFQUFXcEMsT0FBTy9HLEdBQWtCNkosRUFBU0ksRUFDbEVoRCxFQUFPUixFQUFRekcsSUFiSixFQWFVbUosRUFBV2xDLE9BQU9qSCxHQUFrQjZKLEVBQVNDLEVBRXRFSCxHQUNKLENBQ0EsTUFBTyxDQUFFNUMsU0FBUUUsU0FDckIsQ0FDQSxhQUFBaUQsQ0FBY2xCLEVBQVVoSixFQUFHd0QsR0FDdkIsTUFBTTJHLEVBQVduQixFQUFTaEosR0FDcEJvSyxFQUFXcEIsRUFBU3hGLEdBQzFCLElBQUssSUFBSTZHLEVBQUksRUFBR0EsRUFBSXJCLEVBQVNqSixPQUFRc0ssSUFDN0JyQixFQUFTcUIsS0FBT0QsSUFDaEJwQixFQUFTcUIsR0FBS0YsRUFFMUIsQ0FDQSxjQUFBbEIsQ0FBZVIsRUFBY0MsR0FDekIsSUFBSWlCLEVBQWEsRUFDakIsTUFBTS9DLEVBQUssR0FDTEMsRUFBSyxHQUNMeUQsRUFBUWpKLEtBQUtjLE1BQU1kLEtBQUtDLElBQUlELEtBQUtrSixNQUFNN0IsR0FBUSxJQUFNLEVBQ3JEOEIsRUFBV25KLEtBQUtvSixJQUFJLEdBQUlILEdBQ3hCdEIsRUFBVyxJQUFJckcsTUFBTStGLEdBQU83RixNQUFNLEdBQ3hDLElBQUssTUFBTTdDLEtBQUtiLE9BQU9vSyxLQUFLZCxHQUN4QixJQUFLLE1BQU1qRixLQUFLckUsT0FBT29LLEtBQUtkLEVBQWF6SSxJQUNqQ3FCLEtBQUtxSixNQUFNakMsRUFBYXpJLEdBQUd3RCxHQUFLZ0gsR0FBWUEsRUFBVyxHQUN2RC9CLEVBQWF6SSxHQUFHd0QsS0FBT2dHLE9BQU94SixJQUFNd0osT0FBT2hHLEdBQUtnRyxPQUFPeEosS0FDdkQ0RyxFQUFHTixLQUFLa0QsT0FBT3hKLElBQ2Y2RyxFQUFHUCxLQUFLa0QsT0FBT2hHLEtBQ2MsSUFBekJ3RixFQUFTUSxPQUFPeEosTUFBdUMsSUFBekJnSixFQUFTUSxPQUFPaEcsSUFDMUN3RixFQUFTUSxPQUFPeEosTUFBUWdKLEVBQVNRLE9BQU9oRyxLQUN4QzVFLEtBQUtzTCxjQUFjbEIsRUFBVVEsT0FBT3hKLEdBQUl3SixPQUFPaEcsS0FFckIsSUFBekJ3RixFQUFTUSxPQUFPeEosSUFDckJnSixFQUFTUSxPQUFPaEcsSUFBTXdGLEVBQVNRLE9BQU94SixLQUVSLElBQXpCZ0osRUFBU1EsT0FBT2hHLElBQ3JCd0YsRUFBU1EsT0FBT3hKLElBQU1nSixFQUFTUSxPQUFPaEcsS0FHdENtRyxJQUNBWCxFQUFTUSxPQUFPeEosSUFBTTJKLEVBQ3RCWCxFQUFTUSxPQUFPaEcsSUFBTW1HLElBS3RDLElBQUssSUFBSTNKLEVBQUksRUFBR0EsRUFBSWdKLEVBQVNqSixPQUFRQyxLQUNaLElBQWpCZ0osRUFBU2hKLEtBQ1QySixJQUNBWCxFQUFTaEosR0FBSzJKLEdBR3RCLE1BQU8sQ0FBRVgsV0FBVXBDLEtBQUlDLEtBQzNCLENBQ0EsWUFBQThCLENBQWFGLEdBQ1QsTUFBTS9CLEVBQWUsQ0FBQyxFQUN0QixJQUFLLElBQUkxRyxFQUFJLEVBQUdBLEVBQUl5SSxFQUFhekksRUFBRUQsT0FBUUMsSUFDbEMwRyxFQUFhK0IsRUFBYXpJLEVBQUVBLE1BQzdCMEcsRUFBYStCLEVBQWF6SSxFQUFFQSxJQUFNLENBQUMsR0FDdkMwRyxFQUFhK0IsRUFBYXpJLEVBQUVBLElBQUl5SSxFQUFhakYsRUFBRXhELElBQU0sRUFBSXlJLEVBQWFoRixTQUFTekQsR0FDMUUwRyxFQUFhK0IsRUFBYWpGLEVBQUV4RCxNQUM3QjBHLEVBQWErQixFQUFhakYsRUFBRXhELElBQU0sQ0FBQyxHQUN2QzBHLEVBQWErQixFQUFhakYsRUFBRXhELElBQUl5SSxFQUFhekksRUFBRUEsSUFBTSxFQUFJeUksRUFBYWhGLFNBQVN6RCxHQUVuRixPQUFPMEcsQ0FDWCxDQUNBLFFBQUFrQyxDQUFTbEMsRUFBY2dDLEdBQ25CLElBQUssSUFBSTFJLEVBQUksRUFBR0EsRUFBSTBJLEVBQU8xSSxJQUNsQjBHLEVBQWExRyxLQUNkMEcsRUFBYTFHLEdBQUssQ0FBQyxHQUN2QjBHLEVBQWExRyxHQUFHQSxHQUFLcEIsS0FBSzJKLFNBQVNGLFVBRTNDLENBQ0EsU0FBQVEsQ0FBVW5DLEdBQ04sSUFBSyxNQUFNMUcsS0FBS2IsT0FBT29LLEtBQUs3QyxHQUFlLENBQ3ZDLE1BQU1pRSxFQUFNakUsRUFBYTFHLEdBQ3pCLElBQUk0SyxFQUFNLEVBQ1YsSUFBSyxNQUFNcEgsS0FBS3JFLE9BQU9vSyxLQUFLb0IsR0FDeEJDLEdBQU9ELEVBQUluSCxHQUNmLEdBQVksSUFBUm9ILEVBRUosSUFBSyxNQUFNcEgsS0FBS3JFLE9BQU9vSyxLQUFLb0IsR0FDeEJqRSxFQUFhMUcsR0FBR3dELElBQU1vSCxDQUM5QixDQUNKLENBQ0EsTUFBQTlCLENBQU9wQyxFQUFjZ0MsR0FDakIsTUFBTW1DLEVBQWlCLENBQUMsRUFDbEJQLEVBQVFqSixLQUFLYyxNQUFNZCxLQUFLQyxJQUFJRCxLQUFLa0osTUFBTTdCLEdBQVEsSUFBTSxFQUNyRDhCLEVBQVduSixLQUFLb0osSUFBSSxHQUFJSCxHQUM5QixJQUFLLElBQUl0SyxFQUFJLEVBQUdBLEVBQUkwSSxFQUFPMUksSUFDdkIsR0FBSzBHLEVBQWExRyxHQUFsQixDQUdBNkssRUFBZTdLLEdBQUssQ0FBQyxFQUNyQixJQUFLLElBQUl3RCxFQUFJeEQsRUFBR3dELEVBQUlrRixFQUFPbEYsSUFBSyxDQUM1QixJQUFLa0QsRUFBYTFHLEtBQUt3RCxHQUNuQixTQUNKLE1BQU1hLEVBQU16RixLQUFLa00sZUFBZXBFLEVBQWMxRyxFQUFHd0QsR0FDN0NuQyxLQUFLcUosTUFBTXJHLEVBQU1tRyxHQUFZQSxFQUFXLElBQ3hDSyxFQUFlN0ssR0FBR3dELEdBQUthLEVBQ2xCd0csRUFBZXJILEtBQ2hCcUgsRUFBZXJILEdBQUssQ0FBQyxHQUN6QnFILEVBQWVySCxHQUFHeEQsR0FBS3FFLEVBRS9CLENBYlksQ0FlaEIsT0FBT3dHLENBQ1gsQ0FHQSxPQUFBOUIsQ0FBUXJDLEdBQ0osSUFBSyxNQUFNMUcsS0FBS2IsT0FBT29LLEtBQUs3QyxHQUFlLENBQ3ZDLE1BQU1pRSxFQUFNakUsRUFBYTFHLEdBQ3pCLElBQUssTUFBTXdELEtBQUtyRSxPQUFPb0ssS0FBS29CLEdBQ3hCakUsRUFBYTFHLEdBQUd3RCxHQUFLbkMsS0FBS29KLElBQUkvRCxFQUFhMUcsR0FBR3dELEdBQUk1RSxLQUFLMkosU0FBU0gsY0FDeEUsQ0FDSixDQUNBLGNBQUEwQyxDQUFlcEUsRUFBYzFHLEVBQUd3RCxHQUM1QixJQUFJYSxFQUFNLEVBQ1YsTUFBTTBHLEVBQWlCNUwsT0FBT29LLEtBQUs3QyxFQUFhMUcsSUFBTSxDQUFDLEdBQ2pEZ0wsRUFBZTdMLE9BQU9vSyxLQUFLN0MsRUFBYWxELElBQU0sQ0FBQyxHQUNyRCxJQUFLLE1BQU02RyxLQUFLVSxFQUNSQyxFQUFhQyxTQUFTWixLQUN0QmhHLEdBQU9xQyxFQUFhMUcsR0FBR3FLLEdBQUszRCxFQUFhbEQsR0FBRzZHLElBRXBELE9BQU9oRyxDQUNYLEVDNU1KVCxVQUFZMkMsTUFBTzJFLElBQ2YsTUFBTSxLQUFFckgsRUFBSSxVQUFFakMsRUFBUyxRQUFFRSxFQUFPLGtCQUFFQyxFQUFpQixlQUFFb0osRUFBYyxZQUFFQyxFQUFXLGNBQUVqRCxHQUFrQitDLEVBQU1ySCxLQUNwR3dILFFBQWUsSUFBSW5LLEdBQ3BCTyxnQkFBZ0JvQyxFQUFNdUgsRUFBYXhKLEVBQVksSUFBS3VKLEVBQWdCckosRUFBU0MsR0FDNUV3QyxRQUFZLElBQUkrRCxFQUFpQixDQUFFSCxjQUFlQSxHQUFpQixJQUFLSyxVQUFVNkMsRUFBUXhILEVBQUssR0FBRzlELFFBQ3hHNEQsWUFBWSxDQUFFWSxPQUFNLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvdHlwZXMuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC91dGlscy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvc3BhcnNlLW1hdHJpeC1zZXJ2aWNlLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9iaW8tbGF5b3V0LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tYXJjb3YtY2x1c3Rlci5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9NQ0wvbWNsLXdvcmtlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzO1xuKGZ1bmN0aW9uIChEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcykge1xuICAgIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzW1wiRVVDTElERUFOXCJdID0gXCJFVUNMSURFQU5cIjtcbiAgICBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kc1tcIk1BTkhBVFRBTlwiXSA9IFwiTUFOSEFUVEFOXCI7XG59KShEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyB8fCAoRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgPSB7fSkpO1xuO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pYTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMGVYQmxjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeE5RVUZOTEVOQlFVNHNTVUZCV1N3d1FrRkhWRHRCUVVoSUxGZEJRVmtzTUVKQlFUQkNPMGxCUTJ4RExIRkVRVUYxUWl4RFFVRkJPMGxCUTNaQ0xIRkVRVUYxUWl4RFFVRkJPMEZCUTNwQ0xFTkJRVU1zUlVGSVV5d3dRa0ZCTUVJc1MwRkJNVUlzTUVKQlFUQkNMRkZCUjI1RE8wRkJRVUVzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQmxiblZ0SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6SUh0Y2JpQWdJQ0JGVlVOTVNVUkZRVTRnUFNBblJWVkRURWxFUlVGT0p5eGNiaUFnSUNCTlFVNUlRVlJVUVU0Z1BTQW5UVUZPU0VGVVZFRk9KeXhjYmlBZ2ZUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlHdGxlVzltSUhSNWNHVnZaaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtjenRjYmlKZGZRPT0iLCIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmpzXCI7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYztcblx0aWYgKCFzY3JpcHRVcmwpIHtcblx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuXHRcdGlmKHNjcmlwdHMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgaSA9IHNjcmlwdHMubGVuZ3RoIC0gMTtcblx0XHRcdHdoaWxlIChpID4gLTEgJiYgIXNjcmlwdFVybCkgc2NyaXB0VXJsID0gc2NyaXB0c1tpLS1dLnNyYztcblx0XHR9XG5cdH1cbn1cbi8vIFdoZW4gc3VwcG9ydGluZyBicm93c2VycyB3aGVyZSBhbiBhdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIHlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0LnB1YmxpY1BhdGggbWFudWFsbHkgdmlhIGNvbmZpZ3VyYXRpb25cbi8vIG9yIHBhc3MgYW4gZW1wdHkgc3RyaW5nIChcIlwiKSBhbmQgc2V0IHRoZSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyB2YXJpYWJsZSBmcm9tIHlvdXIgY29kZSB0byB1c2UgeW91ciBvd24gbG9naWMuXG5pZiAoIXNjcmlwdFVybCkgdGhyb3cgbmV3IEVycm9yKFwiQXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXJcIik7XG5zY3JpcHRVcmwgPSBzY3JpcHRVcmwucmVwbGFjZSgvIy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcPy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcL1teXFwvXSskLywgXCIvXCIpO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gc2NyaXB0VXJsOyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IHNlbGYubG9jYXRpb24gKyBcIlwiO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJhbHJlYWR5IGxvYWRlZFwiXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQ5OTc6IDFcbn07XG5cbi8vIG5vIGNodW5rIGluc3RhbGwgZnVuY3Rpb24gbmVlZGVkXG4vLyBubyBjaHVuayBsb2FkaW5nXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCJpbXBvcnQgeyBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHgpID0+IHggPT09IG51bGwgfHwgeCA9PT0gdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFNtYWxsZXIoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICBpZiAobnVtID4gZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtIDwgdik7XG4gICAgZGlzdGFuY2VzQXIucG9wKCk7XG4gICAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICAgIGluZGV4ZXMucG9wKCk7XG4gICAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRMYXJnZXIoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gICAgZGlzdGFuY2VzQXIucG9wKCk7XG4gICAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICAgIGluZGV4ZXMucG9wKCk7XG4gICAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKGFnZ3JlZ2F0aW9uTWV0aG9kLCB3ZWlnaHRzKSB7XG4gICAgc3dpdGNoIChhZ2dyZWdhdGlvbk1ldGhvZCkge1xuICAgICAgICBjYXNlIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLk1BTkhBVFRBTjpcbiAgICAgICAgICAgIHJldHVybiAodnMpID0+IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgdmFsICogd2VpZ2h0c1tpZHhdLCAwKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAodnMpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgICAgICAgICBjb25zdCBzdW0gPSB2cy5yZWR1Y2UoKGFjYywgdmFsLCBpZHgpID0+IGFjYyArICh2YWwgKiB3ZWlnaHRzW2lkeF0pICoqIDIsIDApO1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoc3VtKTtcbiAgICAgICAgICAgIH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFhScGJITXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMWRHbHNjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFUUkNMREJDUVVFd1FpeEZRVUZETEUxQlFVMHNVMEZCVXl4RFFVRkRPMEZCUlRsRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1UwRkJVeXhEUVVGRE8wRkJSUzlFTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUVVNc1YwRkJjVUlzUlVGQlJTeFBRVUZwUWl4RlFVRkZMRWRCUVZjc1JVRkJSU3hMUVVGaE8wbEJRMmhITEVsQlFVa3NSMEZCUnl4SFFVRkhMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeEhRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjZReXhQUVVGUE8wbEJSVlFzVFVGQlRTeFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRekZFTEZkQlFWY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOc1FpeFhRVUZYTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEyUXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNoRExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNXVUZCV1N4RFFVRkRMRmRCUVhGQ0xFVkJRVVVzVDBGQmFVSXNSVUZCUlN4SFFVRlhMRVZCUVVVc1MwRkJZVHRKUVVNdlJpeEpRVUZKTEVkQlFVY3NSMEZCUnl4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFMUJRVTBzUjBGQlF5eERRVUZETEVOQlFVTTdVVUZEZWtNc1QwRkJUenRKUVVWVUxFMUJRVTBzVjBGQlZ5eEhRVUZITEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNeFJDeFhRVUZYTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRiRUlzVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEzaERMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5rTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTjRReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhOQ1FVRnpRaXhEUVVOd1F5eHBRa0ZCTkVNc1JVRkJSU3hQUVVGcFFqdEpRVVV2UkN4UlFVRlJMR2xDUVVGcFFpeEZRVUZGTzFGQlEzcENMRXRCUVVzc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0WlFVTjJReXhQUVVGUExFTkJRVU1zUlVGQldTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzSkdPMWxCUTBVc1QwRkJUeXhEUVVGRExFVkJRVmtzUlVGQlJTeEZRVUZGTzJkQ1FVTjBRaXhaUVVGWk8yZENRVU5hTEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE4wVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEzaENMRU5CUVVNc1EwRkJRenRMUVVOTU8wRkJRMGdzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDd2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpITjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FYTk9hV3dnUFNBb2VEb2dZVzU1S1NBOVBpQjRJRDA5UFNCdWRXeHNJSHg4SUhnZ1BUMDlJSFZ1WkdWbWFXNWxaRHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdsdWMyVnlkRk50WVd4c1pYSW9aR2x6ZEdGdVkyVnpRWEk2SUc1MWJXSmxjbHRkTENCcGJtUmxlR1Z6T2lCdWRXMWlaWEpiWFN3Z2JuVnRPaUJ1ZFcxaVpYSXNJR2x1WkdWNE9pQnVkVzFpWlhJcElIdGNiaUFnYVdZZ0tHNTFiU0ErSUdScGMzUmhibU5sYzBGeVcyUnBjM1JoYm1ObGMwRnlMbXhsYm1kMGFDMHhYU2xjYmlBZ0lDQnlaWFIxY200N1hHNWNiaUFnWTI5dWMzUWdibVYzVUc5emFYUnBiMjRnUFNCa2FYTjBZVzVqWlhOQmNpNW1hVzVrU1c1a1pYZ29LSFlwSUQwK0lHNTFiU0E4SUhZcE8xeHVJQ0JrYVhOMFlXNWpaWE5CY2k1d2IzQW9LVHRjYmlBZ1pHbHpkR0Z1WTJWelFYSXVjM0JzYVdObEtHNWxkMUJ2YzJsMGFXOXVMQ0F3TENCdWRXMHBPMXh1SUNCcGJtUmxlR1Z6TG5CdmNDZ3BPMXh1SUNCcGJtUmxlR1Z6TG5Od2JHbGpaU2h1WlhkUWIzTnBkR2x2Yml3Z01Dd2dhVzVrWlhncE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVc1elpYSjBUR0Z5WjJWeUtHUnBjM1JoYm1ObGMwRnlPaUJ1ZFcxaVpYSmJYU3dnYVc1a1pYaGxjem9nYm5WdFltVnlXMTBzSUc1MWJUb2diblZ0WW1WeUxDQnBibVJsZURvZ2JuVnRZbVZ5S1NCN1hHNGdJR2xtSUNodWRXMGdQQ0JrYVhOMFlXNWpaWE5CY2x0a2FYTjBZVzVqWlhOQmNpNXNaVzVuZEdndE1WMHBYRzRnSUNBZ2NtVjBkWEp1TzF4dVhHNGdJR052Ym5OMElHNWxkMUJ2YzJsMGFXOXVJRDBnWkdsemRHRnVZMlZ6UVhJdVptbHVaRWx1WkdWNEtDaDJLU0E5UGlCdWRXMGdQaUIyS1R0Y2JpQWdaR2x6ZEdGdVkyVnpRWEl1Y0c5d0tDazdYRzRnSUdScGMzUmhibU5sYzBGeUxuTndiR2xqWlNodVpYZFFiM05wZEdsdmJpd2dNQ3dnYm5WdEtUdGNiaUFnYVc1a1pYaGxjeTV3YjNBb0tUdGNiaUFnYVc1a1pYaGxjeTV6Y0d4cFkyVW9ibVYzVUc5emFYUnBiMjRzSURBc0lHbHVaR1Y0S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEVGblozSmxaMkYwYVc5dVJuVnVZM1JwYjI0b1hHNGdJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtPaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtMQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYVnh1S1RvZ0tIWmhiSFZsY3pvZ2JuVnRZbVZ5VzEwcElEMCtJRzUxYldKbGNpQjdYRzRnSUhOM2FYUmphQ0FvWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFwSUh0Y2JpQWdJQ0JqWVhObElFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrMUJUa2hCVkZSQlRqcGNiaUFnSUNBZ0lISmxkSFZ5YmlBb2RuTTZJRzUxYldKbGNsdGRLU0E5UGlCMmN5NXlaV1IxWTJVb0tHRmpZeXdnZG1Gc0xDQnBaSGdwSUQwK0lHRmpZeUFySUhaaGJDQXFJSGRsYVdkb2RITmJhV1I0WFN3Z01DazdYRzRnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUhKbGRIVnliaUFvZG5NNklHNTFiV0psY2x0ZEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUM4dklHVjFZMnhwWkdWaGJseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCemRXMGdQU0IyY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzTENCcFpIZ3BJRDArSUdGall5QXJJQ2gyWVd3Z0tpQjNaV2xuYUhSelcybGtlRjBwSUNvcUlESXNJREFwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVFdGMGFDNXpjWEowS0hOMWJTazdYRzRnSUNBZ0lDQjlPMXh1SUNCOVhHNTlYRzRpWFgwPSIsImltcG9ydCB7IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpbnNlcnRTbWFsbGVyLCBpc05pbCB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IGNsYXNzIFNwYXJzZU1hdHJpeFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl93b3JrZXJDb3VudCA9IE1hdGgubWF4KG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5IC0gMiwgMSk7XG4gICAgfVxuICAgIGFzeW5jIGNhbGNNdWx0aUNvbHVtbih2YWx1ZXMsIGZuTmFtZXMsIHRocmVzaG9sZCwgb3B0cyA9IFt7fV0sIHdlaWdodHMgPSBbMV0sIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3QgbWluVGhyZXNob2xkID0gdmFsdWVzWzBdLmxlbmd0aCA+IDIwMDAwID9cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0TWluaW1hbFRocmVzaG9sZCh2YWx1ZXMsIGZuTmFtZXMsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kKSA6IDA7XG4gICAgICAgIGlmICh0aHJlc2hvbGQgPCBtaW5UaHJlc2hvbGQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGB1c2luZyB0aHJlc2hvbGQgJHttaW5UaHJlc2hvbGR9YCk7XG4gICAgICAgICAgICB0aHJlc2hvbGQgPSBtaW5UaHJlc2hvbGQ7XG4gICAgICAgIH1cbiAgICAgICAgb3B0cy5mb3JFYWNoKChfLCBpKSA9PiBvcHRzW2ldWyd0aHJlc2hvbGQnXSA9IHRocmVzaG9sZCk7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3Qgd29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudClcbiAgICAgICAgICAgIC5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4vc3BhcnNlLW1hdHJpeC13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuX3dvcmtlckNvdW50OyBpZHgrKykge1xuICAgICAgICAgICAgcHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydElkeCA9IGlkeCAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgaWYgKGVuZElkeCA8PSBzdGFydElkeClcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGk6IG5ldyBJbnQzMkFycmF5KDApLCBqOiBuZXcgSW50MzJBcnJheSgwKSwgZGlzdGFuY2U6IG5ldyBGbG9hdDMyQXJyYXkoMCksIGlkeCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2UoeyB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIHRocmVzaG9sZCwgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGksIGosIGRpc3RhbmNlIH0gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdFdvcmtlcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgaSwgaiwgZGlzdGFuY2UsIGlkeCB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBmdWxsU2l6ZSA9IHJlc3VsdHMucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjICsgdmFsLmkubGVuZ3RoLCAwKTtcbiAgICAgICAgY29uc3QgaSA9IG5ldyBJbnQzMkFycmF5KGZ1bGxTaXplKTtcbiAgICAgICAgY29uc3QgaiA9IG5ldyBJbnQzMkFycmF5KGZ1bGxTaXplKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBuZXcgRmxvYXQzMkFycmF5KGZ1bGxTaXplKTtcbiAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgIC8vIHNldHRpbmcgdGhlIHJlc3VsdHNcbiAgICAgICAgZm9yIChjb25zdCByZXMgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgaS5zZXQocmVzLmksIG9mZnNldCk7XG4gICAgICAgICAgICBqLnNldChyZXMuaiwgb2Zmc2V0KTtcbiAgICAgICAgICAgIGRpc3RhbmNlLnNldChyZXMuZGlzdGFuY2UsIG9mZnNldCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gcmVzLmkubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGksIGosIGRpc3RhbmNlIH07XG4gICAgfVxuICAgIGFzeW5jIGNhbGModmFsdWVzLCBmbk5hbWUsIHRocmVzaG9sZCwgb3B0cyA9IHt9KSB7XG4gICAgICAgIC8vc2l6ZSBvZiBmdWxsIG1hdHJpeFxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5jYWxjTXVsdGlDb2x1bW4oW3ZhbHVlc10sIFtmbk5hbWVdLCB0aHJlc2hvbGQsIFtvcHRzXSwgWzFdKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0S05OKHZhbHVlcywgZm5OYW1lLCBuTmVpZ2hib3VycyA9IDE1LCBvcHRzID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubXVsdGlDb2x1bW5LTk4oW3ZhbHVlc10sIFtmbk5hbWVdLCBuTmVpZ2hib3VycywgW29wdHNdLCBbMV0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRUaHJlc2hvbGRLTk4odmFsdWVzLCBmbk5hbWUsIHRocmVzaG9sZCA9IDAuOCwgb3B0cyA9IHt9KSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLm11bHRpQ29sdW1uVGhyZXNob2xkS25uKFt2YWx1ZXNdLCBbZm5OYW1lXSwgdGhyZXNob2xkLCBbb3B0c10sIFsxXSk7XG4gICAgfVxuICAgIGFzeW5jIG11bHRpQ29sdW1uVGhyZXNob2xkS25uKHZhbHVlcywgZm5OYW1lcywgdGhyZXNob2xkID0gMC44LCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCA9IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLkVVQ0xJREVBTikge1xuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCAhPT0gZm5OYW1lcy5sZW5ndGggfHwgdmFsdWVzLmxlbmd0aCAhPT0gb3B0cy5sZW5ndGggfHwgdmFsdWVzLmxlbmd0aCAhPT0gd2VpZ2h0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlcywgZGlzdGFuY2UgZnVuY3Rpb25zLCBvcHRpb25zIGFuZCB3ZWlnaHRzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgaWYgKHZhbHVlcy5zb21lKCh2KSA9PiB2Lmxlbmd0aCAhPT0gdmFsdWVzWzBdLmxlbmd0aCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbCB2YWx1ZXMgYXJyYXlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCcpO1xuICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzWzBdLmxlbmd0aCAqICh2YWx1ZXNbMF0ubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICBjb25zdCBjaHVua1NpemUgPSBNYXRoLmZsb29yKG1hdFNpemUgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3Qgd29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudClcbiAgICAgICAgICAgIC5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4va25uLXRocmVzaG9sZC13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuX3dvcmtlckNvdW50OyBpZHgrKykge1xuICAgICAgICAgICAgcHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydElkeCA9IGlkeCAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgaWYgKGVuZElkeCA8PSBzdGFydElkeClcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlczogbmV3IEFycmF5KDApLCBrbm5JbmRleGVzOiBuZXcgQXJyYXkoMCkgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHsgdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWVzLCBvcHRzLCB0aHJlc2hvbGQsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kIH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGVycm9yLCBrbm5EaXN0YW5jZXMsIGtubkluZGV4ZXMgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBrbm5EaXN0YW5jZXMsIGtubkluZGV4ZXMgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgY29uc3Qga25uU2l6ZXMgPSBuZXcgSW50MzJBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKTtcbiAgICAgICAgZm9yIChjb25zdCByZXMgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNbMF0ubGVuZ3RoOyArK2kpXG4gICAgICAgICAgICAgICAga25uU2l6ZXNbaV0gKz0gcmVzLmtubkluZGV4ZXNbaV0/Lmxlbmd0aCA/PyAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtublJlcyA9IHtcbiAgICAgICAgICAgIGtubkRpc3RhbmNlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKChfLCBpKSA9PiBuZXcgQXJyYXkoa25uU2l6ZXNbaV0pKSxcbiAgICAgICAgICAgIGtubkluZGV4ZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoXywgaSkgPT4gbmV3IEFycmF5KGtublNpemVzW2ldKSlcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCByZXMgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNbMF0ubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHJlcy5rbm5EaXN0YW5jZXNbaV0/Lmxlbmd0aCA/PyAwOyArK2opIHtcbiAgICAgICAgICAgICAgICAgICAga25uUmVzLmtubkRpc3RhbmNlc1tpXVtrbm5TaXplc1tpXSAtIDFdID0gcmVzLmtubkRpc3RhbmNlc1tpXVtqXTtcbiAgICAgICAgICAgICAgICAgICAga25uUmVzLmtubkluZGV4ZXNbaV1ba25uU2l6ZXNbaV0gLSAxXSA9IHJlcy5rbm5JbmRleGVzW2ldW2pdO1xuICAgICAgICAgICAgICAgICAgICBrbm5TaXplc1tpXSAtPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga25uUmVzO1xuICAgIH1cbiAgICBhc3luYyBtdWx0aUNvbHVtbktOTih2YWx1ZXMsIGZuTmFtZXMsIG5OZWlnaGJvdXJzID0gMTUsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSBmbk5hbWVzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSBvcHRzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSB3ZWlnaHRzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWVzLCBkaXN0YW5jZSBmdW5jdGlvbnMsIG9wdGlvbnMgYW5kIHdlaWdodHMgYXJyYXlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCcpO1xuICAgICAgICBpZiAodmFsdWVzLnNvbWUoKHYpID0+IHYubGVuZ3RoICE9PSB2YWx1ZXNbMF0ubGVuZ3RoKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWxsIHZhbHVlcyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9rbm4td29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLl93b3JrZXJDb3VudDsgaWR4KyspIHtcbiAgICAgICAgICAgIHByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJZHggPSBpZHggKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSWR4ID0gaWR4ID09PSB0aGlzLl93b3JrZXJDb3VudCAtIDEgPyBtYXRTaXplIDogKGlkeCArIDEpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGlmIChlbmRJZHggPD0gc3RhcnRJZHgpXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSgwKSwga25uSW5kZXhlczogbmV3IEFycmF5KDApIH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgZm5OYW1lcywgb3B0cywgbk5laWdoYm91cnMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kIH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGVycm9yLCBrbm5EaXN0YW5jZXMsIGtubkluZGV4ZXMgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBrbm5EaXN0YW5jZXMsIGtubkluZGV4ZXMgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgY29uc3Qga25uUmVzID0ge1xuICAgICAgICAgICAga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5KG5OZWlnaGJvdXJzKS5maWxsKDk5OTk5KSksXG4gICAgICAgICAgICBrbm5JbmRleGVzOiBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5KG5OZWlnaGJvdXJzKS5maWxsKC0xKSlcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCByZXMgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNbMF0ubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHJlcy5rbm5EaXN0YW5jZXNbaV0/Lmxlbmd0aCA/PyAwOyArK2opXG4gICAgICAgICAgICAgICAgICAgIGluc2VydFNtYWxsZXIoa25uUmVzLmtubkRpc3RhbmNlc1tpXSwga25uUmVzLmtubkluZGV4ZXNbaV0sIHJlcy5rbm5EaXN0YW5jZXNbaV1bal0sIHJlcy5rbm5JbmRleGVzW2ldW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga25uUmVzO1xuICAgIH1cbiAgICBhc3luYyBnZXRTYW1wbGVEaXN0YW5jZXModmFsdWVzLCBmbk5hbWVzLCBvcHRzID0gW10sIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIGNvbnN0IHRocmVzaG9sZFdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpLmZpbGwobnVsbClcbiAgICAgICAgICAgIC5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL3NwYXJzZS1tYXRyaXgtdGhyZXNob2xkLXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgICAgICBjb25zdCBjaHVua1NpemUgPSBNYXRoLmZsb29yKG1hdFNpemUgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgICAgICBjb25zdCBtYXhTYW1wbGVTaXplID0gMTAwMDAwMDtcbiAgICAgICAgICAgIGNvbnN0IHNhbXBsZVNpc2UgPSBNYXRoLm1heChNYXRoLm1pbihtYXRTaXplIC8gMTAwMCwgbWF4U2FtcGxlU2l6ZSksIE1hdGgubWluKG1hdFNpemUsIG1heFNhbXBsZVNpemUpKTtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RTZXRTaXplUGVyV29ya2VyID0gTWF0aC5mbG9vcihzYW1wbGVTaXNlIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICAgICAgY29uc3QgdFByb21pc2VzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuX3dvcmtlckNvdW50OyBpZHgrKykge1xuICAgICAgICAgICAgICAgIHRQcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydElkeCA9IGlkeCAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kSWR4ID0gaWR4ID09PSB0aGlzLl93b3JrZXJDb3VudCAtIDEgPyBtYXRTaXplIDogKGlkeCArIDEpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIHNhbXBsZUxlbmd0aDogdGVzdFNldFNpemVQZXJXb3JrZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyZXNob2xkV29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGRpc3RhbmNlIH0gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyZXNob2xkV29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdFdvcmtlcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGRpc3RhbmNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHRQcm9taXNlcyk7XG4gICAgICAgICAgICBjb25zdCBmdWxsU2l6ZSA9IHJlc3VsdHMucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjICsgdmFsLmRpc3RhbmNlLmxlbmd0aCwgMCk7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IG5ldyBGbG9hdDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgZGlzdGFuY2Uuc2V0KHJlcy5kaXN0YW5jZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gcmVzLmRpc3RhbmNlLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpc3RhbmNlLnNvcnQoKTtcbiAgICAgICAgICAgIHJldHVybiBkaXN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyZXNob2xkV29ya2Vycz8uZm9yRWFjaCgodykgPT4gdz8udGVybWluYXRlKCkpO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmxvYXQzMkFycmF5KDEpLmZpbGwoMC41KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRNaW5pbWFsVGhyZXNob2xkKHZhbHVlcywgZm5OYW1lcywgb3B0cyA9IFtdLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCA9IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLkVVQ0xJREVBTikge1xuICAgICAgICAvL1dlIG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbWFsIHRocmVzaG9sZCBmaXJzdCxcbiAgICAgICAgLy9pbiBvcmRlciB0byBnZXQgbWF0cml4IHN1Y2ggdGhhdCBpdCBkb2VzIG5vdCBleGNlZWQgdGhlIG1heGltdW0gc2l6ZSBvZiAxR0JcbiAgICAgICAgLy93ZSBoYXZlIDMgcmV0dXJuIGFycmF5cywgZWFjaCA0IGJpdGVzIHBlciBlbGVtZW50LCBzbyBpZiB0aGUgbWF4aW11bSBzaXplIG9mIHRoZSBtYXRyaXggaXMgMUdCLFxuICAgICAgICBjb25zdCBtYXhTcGFyc2VNYXRyaXhTaXplID0gNzAwMDAwMDA7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzLmxlbmd0aCAqICh2YWx1ZXMubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBhd2FpdCB0aGlzLmdldFNhbXBsZURpc3RhbmNlcyh2YWx1ZXMsIGZuTmFtZXMsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kKTtcbiAgICAgICAgICAgIGNvbnN0IGZyYWN0aW9uSW5kZXggPSBNYXRoLmZsb29yKG1heFNwYXJzZU1hdHJpeFNpemUgLyBtYXRTaXplICogZGlzdGFuY2UubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IHRocmVzaG9sZCA9IDEgLSBkaXN0YW5jZVtmcmFjdGlvbkluZGV4XTtcbiAgICAgICAgICAgIC8vIHRocmVzaG9sZCA9IE1hdGgubWF4KHRocmVzaG9sZCwgMC4zKTtcbiAgICAgICAgICAgIHJldHVybiB0aHJlc2hvbGQ7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBjYWxjU3luYyh2YWx1ZXMsIGZuTmFtZSwgZGlzdGFuY2VGbiwgdGhyZXNob2xkKSB7XG4gICAgICAgIGNvbnN0IGkgPSBbXTtcbiAgICAgICAgY29uc3QgaiA9IFtdO1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBbXTtcbiAgICAgICAgbGV0IGNudCA9IDA7XG4gICAgICAgIGxldCBtaSA9IDA7XG4gICAgICAgIGxldCBtaiA9IDA7XG4gICAgICAgIGNvbnN0IGZ1bGxTaXplID0gdmFsdWVzLmxlbmd0aCAqICh2YWx1ZXMubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICB3aGlsZSAoY250IDwgZnVsbFNpemUpIHtcbiAgICAgICAgICAgIC8vY29uc3QgdmFsdWUgPSBzZXExTGlzdFttaV0gJiYgc2VxMUxpc3RbbWpdID8gaGFtbWluZyhzZXExTGlzdFttaV0sIHNlcTFMaXN0W21qXSkgOiAwO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAhaXNOaWwodmFsdWVzW21pXSkgJiYgIWlzTmlsKHZhbHVlc1ttal0pID9cbiAgICAgICAgICAgICAgICBkaXN0YW5jZUZuKHZhbHVlc1ttaV0sIHZhbHVlc1ttal0pIDogMTtcbiAgICAgICAgICAgIGNvbnN0IHNpbWlsYXJpdHkgPSAxIC0gdmFsdWU7XG4gICAgICAgICAgICBpZiAoc2ltaWxhcml0eSA+PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICBpLnB1c2gobWkpO1xuICAgICAgICAgICAgICAgIGoucHVzaChtaik7XG4gICAgICAgICAgICAgICAgZGlzdGFuY2VzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY250Kys7XG4gICAgICAgICAgICBtaisrO1xuICAgICAgICAgICAgaWYgKG1qID09PSB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbWkrKztcbiAgICAgICAgICAgICAgICBtaiA9IG1pICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpQXJyYXkgPSBuZXcgSW50MzJBcnJheShpKTtcbiAgICAgICAgY29uc3QgakFycmF5ID0gbmV3IEludDMyQXJyYXkoaik7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KGRpc3RhbmNlcyk7XG4gICAgICAgIHJldHVybiB7IGk6IGlBcnJheSwgajogakFycmF5LCBkaXN0YW5jZTogZGlzdGFuY2VBcnJheSB9O1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMzQmhjbk5sTFcxaGRISnBlQzF6WlhKMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWMzQmhjbk5sTFcxaGRISnBlQzF6WlhKMmFXTmxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVOQkxFOUJRVThzUlVGQk5FSXNNRUpCUVRCQ0xFVkJRVU1zVFVGQlRTeFRRVUZUTEVOQlFVTTdRVUZET1VVc1QwRkJUeXhGUVVGRExHRkJRV0VzUlVGQlJTeExRVUZMTEVWQlFVTXNUVUZCVFN4VFFVRlRMRU5CUVVNN1FVRmhOME1zVFVGQlRTeFBRVUZQTEcxQ1FVRnRRanRKUVVVMVFqdFJRVU5GTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNiVUpCUVcxQ0xFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKRkxFTkJRVU03U1VGRlRTeExRVUZMTEVOQlFVTXNaVUZCWlN4RFFVRkRMRTFCUVc5Q0xFVkJRVVVzVDBGQmRVSXNSVUZEZUVVc1UwRkJhVUlzUlVGQlJTeFBRVUUyUWl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxGVkJRVzlDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUXpkRkxHOUNRVUVyUXl3d1FrRkJNRUlzUTBGQlF5eFRRVUZUTzFGQlJXNUdMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU01UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRk1VUXNUVUZCVFN4WlFVRlpMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4TFFVRk5MRU5CUVVNc1EwRkJRenRaUVVNNVF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaEdMRWxCUVVrc1UwRkJVeXhIUVVGSExGbEJRVmtzUlVGQlJUdFpRVU0xUWl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExHMUNRVUZ0UWl4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJReTlETEZOQlFWTXNSMEZCUnl4WlFVRlpMRU5CUVVNN1UwRkRNVUk3VVVGRFJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUTNwRUxFMUJRVTBzVVVGQlVTeEhRVU5hTEVsQlFVa3NTMEZCU3l4RFFVRTRRaXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZGTlVRc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJRenRoUVVONlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExIZENRVUYzUWl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoR0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTJoRUxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExHRkJRV0VzUlVGQlJTeFpRVUZaTEVWQlFVVXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZETDBVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVVVGQlVUdHZRa0ZEY0VJc1lVRkJZU3hEUVVGRExFVkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEpRVUZKTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzU1VGQlNTeFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RlFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFVkJRVVVzVFVGQlRTeEZRVUZGTEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeHBRa0ZCYVVJc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlF6TkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RlFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJReXhGUVVGRExFVkJRVkVzUlVGQlJUdHZRa0ZEYWtVc1NVRkJTU3hMUVVGTExFVkJRVVU3ZDBKQlExUXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzNkQ1FVTjZRaXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdjVUpCUTNKQ08zbENRVUZOTzNkQ1FVTk1MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0M1FrRkRla0lzWVVGQllTeERRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzUjBGQlJ5eEZRVUZETEVOQlFVTXNRMEZCUXp0eFFrRkRkRU03WjBKQlEwZ3NRMEZCUXl4RFFVRkRPMWxCUTBvc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRFNqdFJRVVZFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTTFReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRMjVETEUxQlFVMHNRMEZCUXl4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyNURMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFbEJRVWtzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm1MSE5DUVVGelFqdFJRVU4wUWl4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxFOUJRVThzUlVGQlJUdFpRVU42UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRja0lzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEzSkNMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRaUVVOdVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03VTBGRGVFSTdVVUZEUkN4UFFVRlBMRVZCUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVTXNRMEZCUXp0SlFVTXhRaXhEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCU1N4TlFVRm5RaXhGUVVGRkxFMUJRVzlDTEVWQlFVVXNVMEZCYVVJc1JVRkJSU3hQUVVFeVFpeEZRVUZGTzFGQlF6TkhMSEZDUVVGeFFqdFJRVU55UWl4UFFVRlBMRTFCUVUwc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzVTBGQlV5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEyaEdMRU5CUVVNN1NVRkZUU3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVU5xUWl4TlFVRnJRaXhGUVVGRkxFMUJRVzlDTEVWQlFVVXNZMEZCYzBJc1JVRkJSU3hGUVVGRkxFOUJRVEpDTEVWQlFVVTdVVUZGYWtjc1QwRkJUeXhOUVVGTkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEZkQlFWY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnFSaXhEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZETVVJc1RVRkJhMElzUlVGQlJTeE5RVUZ2UWl4RlFVRkZMRmxCUVc5Q0xFZEJRVWNzUlVGQlJTeFBRVUV5UWl4RlFVRkZPMUZCUldoSExFOUJRVThzVFVGQlRTeEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxGTkJRVk1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU40Uml4RFFVRkRPMGxCUlUwc1MwRkJTeXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRTFCUVhsQ0xFVkJRVVVzVDBGQmRVSXNSVUZCUlN4WlFVRnZRaXhIUVVGSExFVkJRemxITEVsQlFUQkNMRVZCUVVVc1QwRkJhVUlzUlVGRE4wTXNiMEpCUVN0RExEQkNRVUV3UWl4RFFVRkRMRk5CUVZNN1VVRkZia1lzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4TFFVRkxMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NUMEZCVHl4RFFVRkRMRTFCUVUwN1dVRkRka2NzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4dlJrRkJiMFlzUTBGQlF5eERRVUZETzFGQlJYaEhMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUzBGQlN5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8xbEJRMjVFTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc0swTkJRU3RETEVOQlFVTXNRMEZCUXp0UlFVVnVSU3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZET1VRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlF6RkVMRTFCUVUwc1VVRkJVU3hIUVVOYUxFbEJRVWtzUzBGQlN5eERRVUZ4UWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRGJrUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXp0aFFVTjZReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4RFFVRkRMSGRDUVVGM1FpeEZRVUZGTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaEdMRXRCUVVzc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTzFsQlEyaEVMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMR0ZCUVdFc1JVRkJSU3haUVVGWkxFVkJRVVVzUlVGQlJUdG5Ra0ZETVVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eEhRVUZITEZOQlFWTXNRMEZCUXp0blFrRkRha01zVFVGQlRTeE5RVUZOTEVkQlFVY3NSMEZCUnl4TFFVRkxMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGREwwVXNTVUZCU1N4TlFVRk5MRWxCUVVrc1VVRkJVVHR2UWtGRGNFSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1dVRkJXU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM2hGTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlF5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc2FVSkJRV2xDTEVWQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNelJ5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExFTkJRVU1zUlVGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUXl4TFFVRkxMRVZCUVVVc1dVRkJXU3hGUVVGRkxGVkJRVlVzUlVGQlF5eEZRVUZETEVWQlFWRXNSVUZCUlR0dlFrRkRNMFVzU1VGQlNTeExRVUZMTEVWQlFVVTdkMEpCUTFRc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPM2RDUVVONlFpeFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN2NVSkJRM0pDTzNsQ1FVRk5PM2RDUVVOTUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1dVRkJXU3hGUVVGRkxGVkJRVlVzUlVGQlF5eERRVUZETEVOQlFVTTdjVUpCUXpORE8yZENRVU5JTEVOQlFVTXNRMEZCUXp0WlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRlJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZETlVNc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEyeEVMRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVDBGQlR5eEZRVUZGTzFsQlEzcENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXp0blFrRkRka01zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1EwRkJRenRUUVVOcVJEdFJRVU5FTEUxQlFVMHNUVUZCVFN4SFFVRmpPMWxCUTNoQ0xGbEJRVmtzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZUTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnhITEZWQlFWVXNSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFOQlFVTXNRMEZCUXp0UlFVTndSeXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTjZRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRuUWtGRGVrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVFVGQlRTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHR2UWtGRGVrUXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEYWtVc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkROMFFzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRwUWtGRGJFSTdZVUZEUmp0VFFVTkdPMUZCUTBRc1QwRkJUeXhOUVVGTkxFTkJRVU03U1VGRGFFSXNRMEZCUXp0SlFVVk5MRXRCUVVzc1EwRkJReXhqUVVGakxFTkJRVU1zVFVGQmVVSXNSVUZCUlN4UFFVRjFRaXhGUVVGRkxHTkJRWE5DTEVWQlFVVXNSVUZEZEVjc1NVRkJNRUlzUlVGQlJTeFBRVUZwUWl4RlFVTTNReXh2UWtGQkswTXNNRUpCUVRCQ0xFTkJRVU1zVTBGQlV6dFJRVVZ1Uml4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhQUVVGUExFTkJRVU1zVFVGQlRUdFpRVU4yUnl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHOUdRVUZ2Uml4RFFVRkRMRU5CUVVNN1VVRkZlRWNzU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkxMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdXVUZEYmtRc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5d3JRMEZCSzBNc1EwRkJReXhEUVVGRE8xRkJSVzVGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNNVJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlExb3NTVUZCU1N4TFFVRkxMRU5CUVhGQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTnVSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8yRkJRM3BETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVU1zWTBGQll5eEZRVUZGTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6bEZMRXRCUVVzc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTzFsQlEyaEVMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMR0ZCUVdFc1JVRkJSU3haUVVGWkxFVkJRVVVzUlVGQlJUdG5Ra0ZETVVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eEhRVUZITEZOQlFWTXNRMEZCUXp0blFrRkRha01zVFVGQlRTeE5RVUZOTEVkQlFVY3NSMEZCUnl4TFFVRkxMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGREwwVXNTVUZCU1N4TlFVRk5MRWxCUVVrc1VVRkJVVHR2UWtGRGNFSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1dVRkJXU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM2hGTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlF5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEZkQlFWY3NSVUZCUlN4UFFVRlBMRVZCUVVVc2FVSkJRV2xDTEVWQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNM1J5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExFTkJRVU1zUlVGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUXl4TFFVRkxMRVZCUVVVc1dVRkJXU3hGUVVGRkxGVkJRVlVzUlVGQlF5eEZRVUZETEVWQlFWRXNSVUZCUlR0dlFrRkRNMFVzU1VGQlNTeExRVUZMTEVWQlFVVTdkMEpCUTFRc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPM2RDUVVONlFpeFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN2NVSkJRM0pDTzNsQ1FVRk5PM2RDUVVOTUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1dVRkJXU3hGUVVGRkxGVkJRVlVzUlVGQlF5eERRVUZETEVOQlFVTTdjVUpCUXpORE8yZENRVU5JTEVOQlFVTXNRMEZCUXp0WlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRlJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZETlVNc1RVRkJUU3hOUVVGTkxFZEJRV003V1VGRGVFSXNXVUZCV1N4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZUTEZkQlFWY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU14Unl4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFWTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZCUXl4RFFVRkRPMUZCUTNwSExFdEJRVXNzVFVGQlRTeEhRVUZITEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTNwQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRk8yZENRVU42UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJRenR2UWtGRGRrUXNZVUZCWVN4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTTNSenRUUVVOR08xRkJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTTdTVUZEYUVJc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhOUVVGdlFpeEZRVU5zUkN4UFFVRjFRaXhGUVVGRkxFOUJRVFpDTEVWQlFVVXNSVUZCUlN4UFFVRnBRaXhGUVVNelJTeHZRa0ZCSzBNc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0UlFVTnVSaXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRE8yRkJRemRFTEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4clEwRkJhME1zUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVYyUml4SlFVRkpPMWxCUTBZc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlF6bEVMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVU14UkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhQUVVGVExFTkJRVU03V1VGRGFFTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFVkJRVVVzWVVGQllTeERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjJSeXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRaUVVONFJTeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJiME1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMWxCUld4R0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMmRDUVVOb1JDeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eGhRVUZoTEVWQlFVVXNXVUZCV1N4RlFVRkZMRVZCUVVVN2IwSkJRek5FTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWRCUVVjc1IwRkJSeXhUUVVGVExFTkJRVU03YjBKQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExFZEJRVWNzUzBGQlN5eEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdiMEpCUXk5RkxHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF6dDNRa0ZEYUVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFJRVUZSTEVWQlFVVXNUVUZCVFN4RlFVRkZMRmxCUVZrc1JVRkJSU3h2UWtGQmIwSTdkMEpCUTNCRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFqdHhRa0ZETVVNc1EwRkJReXhEUVVGRE8yOUNRVU5JTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4RFFVRkRMRVZCUVVNc1NVRkJTU3hGUVVGRkxFVkJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNSVUZCUXl4RlFVRkRMRVZCUVZFc1JVRkJSVHQzUWtGRGNFVXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN2QwSkJRMnhETEVsQlFVa3NTMEZCU3pzMFFrRkJSU3haUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdPelJDUVVNM1FpeGhRVUZoTEVOQlFVTXNSVUZCUXl4UlFVRlJMRVZCUVVNc1EwRkJReXhEUVVGRE8yOUNRVU01UWl4RFFVRkRMRU5CUVVNN1owSkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdZVUZEU2p0WlFVVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRaUVVNM1F5eE5RVUZOTEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRelZGTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFsQlF6VkRMRWxCUVVrc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5tTEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1QwRkJUeXhGUVVGRk8yZENRVU42UWl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJRMjVETEUxQlFVMHNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF6dGhRVU12UWp0WlFVTkVMRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVVZvUWl4UFFVRlBMRkZCUVZFc1EwRkJRenRUUVVOcVFqdFJRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMWxCUTFZc1owSkJRV2RDTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVOcVJDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBDTEU5QlFVOHNTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTNSRE8wbEJRMGdzUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eE5RVUZ2UWl4RlFVTndSQ3hQUVVGMVFpeEZRVUZGTEU5QlFUWkNMRVZCUVVVc1JVRkJSU3hQUVVGcFFpeEZRVU16UlN4dlFrRkJLME1zTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRSUVVOdVJpeHRSRUZCYlVRN1VVRkRia1FzTmtWQlFUWkZPMUZCUXpkRkxHbEhRVUZwUnp0UlFVTnFSeXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRkZCUVZVc1EwRkJRenRSUVVOMlF5eEpRVUZKTzFsQlEwWXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEzaEVMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMWxCUTJ4SExFMUJRVTBzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NUMEZCVHl4SFFVRkhMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU5zUml4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMWxCUXpsRExIZERRVUYzUXp0WlFVTjRReXhQUVVGUExGTkJRVk1zUTBGQlF6dFRRVU5zUWp0UlFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMVlzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOcVFpeFBRVUZQTEVkQlFVY3NRMEZCUXp0VFFVTmFPMGxCUTBnc1EwRkJRenRKUVVWTkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlEzQkNMRTFCUVN0Q0xFVkJRVVVzVFVGQmIwSXNSVUZCUlN4VlFVRnZRaXhGUVVGRkxGTkJRV2xDTzFGQlJUbEdMRTFCUVUwc1EwRkJReXhIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU4yUWl4TlFVRk5MRU5CUVVNc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRGRrSXNUVUZCVFN4VFFVRlRMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJReTlDTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOYUxFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTllMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5ZTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU42UkN4UFFVRlBMRWRCUVVjc1IwRkJSeXhSUVVGUkxFVkJRVVU3V1VGRGNrSXNkVVpCUVhWR08xbEJRM1pHTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM1JFTEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETzFsQlF6ZENMRWxCUVVrc1ZVRkJWU3hKUVVGSkxGTkJRVk1zUlVGQlJUdG5Ra0ZETTBJc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRXQ3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMmRDUVVOWUxGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1lVRkRka0k3V1VGRFJDeEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTk9MRVZCUVVVc1JVRkJSU3hEUVVGRE8xbEJRMHdzU1VGQlNTeEZRVUZGTEV0QlFVc3NUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSVHRuUWtGRGVFSXNSVUZCUlN4RlFVRkZMRU5CUVVNN1owSkJRMHdzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1lVRkRZanRUUVVOR08xRkJSVVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hoUVVGaExFZEJRVWNzU1VGQlNTeFpRVUZaTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkZiRVFzVDBGQlR5eEZRVUZETEVOQlFVTXNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFMUJRVTBzUlVGQlJTeFJRVUZSTEVWQlFVVXNZVUZCWVN4RlFVRkRMRU5CUVVNN1NVRkRla1FzUTBGQlF6dERRVU5LSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0TGJtOTNiazFsZEhKcFkzTjlJR1p5YjIwZ0p5NHVMM1I1Y0dWa0xXMWxkSEpwWTNNbk8xeHVhVzF3YjNKMElIdEVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0xDQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2MzMGdabkp2YlNBbkxpOTBlWEJsY3ljN1hHNXBiWEJ2Y25RZ2UybHVjMlZ5ZEZOdFlXeHNaWElzSUdselRtbHNmU0JtY205dElDY3VMM1YwYVd4ekp6dGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1UzQmhjbk5sVFdGMGNtbDRVbVZ6ZFd4MElEMGdlMXh1SUNCcE9pQkpiblF6TWtGeWNtRjVMRnh1SUNCcU9pQkpiblF6TWtGeWNtRjVMRnh1SUNCa2FYTjBZVzVqWlRvZ1JteHZZWFF6TWtGeWNtRjVMRnh1SUNCcFpIZy9PaUJ1ZFcxaVpYSmNibjA3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRXR1YmxKbGMzVnNkQ0E5SUh0Y2JpQWdhMjV1UkdsemRHRnVZMlZ6T2lCdWRXMWlaWEpiWFZ0ZExGeHVJQ0JyYm01SmJtUmxlR1Z6T2lCdWRXMWlaWEpiWFZ0ZFhHNTlYRzVsZUhCdmNuUWdZMnhoYzNNZ1UzQmhjbk5sVFdGMGNtbDRVMlZ5ZG1salpTQjdYRzRnSUNBZ2NISnBkbUYwWlNCZmQyOXlhMlZ5UTI5MWJuUTZJRzUxYldKbGNqdGNiaUFnSUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQWdJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBJRDBnVFdGMGFDNXRZWGdvYm1GMmFXZGhkRzl5TG1oaGNtUjNZWEpsUTI5dVkzVnljbVZ1WTNrZ0xTQXlMQ0F4S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZWE41Ym1NZ1kyRnNZMDExYkhScFEyOXNkVzF1S0haaGJIVmxjem9nUVhKeVlYazhZVzU1VzEwK0xDQm1iazVoYldWek9pQkxibTkzYmsxbGRISnBZM05iWFN4Y2JpQWdJQ0FnSUhSb2NtVnphRzlzWkRvZ2JuVnRZbVZ5TENCdmNIUnpPaUI3VzE4NklITjBjbWx1WjEwNklHRnVlWDFiWFNBOUlGdDdmVjBzSUhkbGFXZG9kSE02SUc1MWJXSmxjbHRkSUQwZ1d6RmRMRnh1SUNBZ0lDQWdZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUWdQU0JFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtjeTVGVlVOTVNVUkZRVTVjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHMWhkRk5wZW1VZ1BTQjJZV3gxWlhOYk1GMHViR1Z1WjNSb0lDb2dLSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ2dMU0F4S1NBdklESTdYRzRnSUNBZ0lDQmpiMjV6ZENCamFIVnVhMU5wZW1VZ1BTQk5ZWFJvTG1ac2IyOXlLRzFoZEZOcGVtVWdMeUIwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJRzFwYmxSb2NtVnphRzlzWkNBOUlIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ1BpQXlNRjh3TURBZ1AxeHVJQ0FnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbWRsZEUxcGJtbHRZV3hVYUhKbGMyaHZiR1FvZG1Gc2RXVnpMQ0JtYms1aGJXVnpMQ0J2Y0hSekxDQjNaV2xuYUhSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpDa2dPaUF3TzF4dUlDQWdJQ0FnYVdZZ0tIUm9jbVZ6YUc5c1pDQThJRzFwYmxSb2NtVnphRzlzWkNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExteHZaeWhnZFhOcGJtY2dkR2h5WlhOb2IyeGtJQ1I3YldsdVZHaHlaWE5vYjJ4a2ZXQXBPMXh1SUNBZ0lDQWdJQ0IwYUhKbGMyaHZiR1FnUFNCdGFXNVVhSEpsYzJodmJHUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnZjSFJ6TG1admNrVmhZMmdvS0Y4c0lHa3BJRDArSUc5d2RITmJhVjFiSjNSb2NtVnphRzlzWkNkZElEMGdkR2h5WlhOb2IyeGtLVHRjYmlBZ0lDQWdJR052Ym5OMElIQnliMjFwYzJWeklEMWNiaUFnSUNBZ0lDQWdibVYzSUVGeWNtRjVQRkJ5YjIxcGMyVThVM0JoY25ObFRXRjBjbWw0VW1WemRXeDBQajRvZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0IzYjNKclpYSnpJRDBnYm1WM0lFRnljbUY1S0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1Z4dUlDQWdJQ0FnSUNBdVptbHNiQ2h1ZFd4c0tTNXRZWEFvS0NrZ1BUNGdibVYzSUZkdmNtdGxjaWh1WlhjZ1ZWSk1LQ2N1TDNOd1lYSnpaUzF0WVhSeWFYZ3RkMjl5YTJWeUp5d2dhVzF3YjNKMExtMWxkR0V1ZFhKc0tTa3BPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhV1I0SUQwZ01Ec2dhV1I0SUR3Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RN0lHbGtlQ3NyS1NCN1hHNGdJQ0FnSUNBZ0lIQnliMjFwYzJWelcybGtlRjBnUFNCdVpYY2dVSEp2YldselpTZ29jbVZ6YjJ4MlpWZHZjbXRsY2l3Z2NtVnFaV04wVjI5eWEyVnlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhjblJKWkhnZ1BTQnBaSGdnS2lCamFIVnVhMU5wZW1VN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1pXNWtTV1I0SUQwZ2FXUjRJRDA5UFNCMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENBdElERWdQeUJ0WVhSVGFYcGxJRG9nS0dsa2VDQXJJREVwSUNvZ1kyaDFibXRUYVhwbE8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNobGJtUkpaSGdnUEQwZ2MzUmhjblJKWkhncFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxWMjl5YTJWeUtIdHBPaUJ1WlhjZ1NXNTBNekpCY25KaGVTZ3dLU3dnYWpvZ2JtVjNJRWx1ZERNeVFYSnlZWGtvTUNrc0lHUnBjM1JoYm1ObE9pQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtEQXBMQ0JwWkhoOUtUdGNiaUFnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWNHOXpkRTFsYzNOaFoyVW9lM1poYkhWbGN5d2djM1JoY25SSlpIZ3NJR1Z1WkVsa2VDd2dkR2h5WlhOb2IyeGtMQ0JtYms1aGJXVnpMQ0J2Y0hSekxDQjNaV2xuYUhSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpIMHBPMXh1SUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNXZibTFsYzNOaFoyVWdQU0FvZTJSaGRHRTZJSHRsY25KdmNpd2dhU3dnYWl3Z1pHbHpkR0Z1WTJWOWZTazZJSFp2YVdRZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1Z5Y205eUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzUwWlhKdGFXNWhkR1VvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WcVpXTjBWMjl5YTJWeUtHVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzUwWlhKdGFXNWhkR1VvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemIyeDJaVmR2Y210bGNpaDdhU3dnYWl3Z1pHbHpkR0Z1WTJVc0lHbGtlSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JqYjI1emRDQnlaWE4xYkhSeklEMGdZWGRoYVhRZ1VISnZiV2x6WlM1aGJHd29jSEp2YldselpYTXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ1puVnNiRk5wZW1VZ1BTQnlaWE4xYkhSekxuSmxaSFZqWlNnb1lXTmpMQ0IyWVd3cElEMCtJR0ZqWXlBcklIWmhiQzVwTG14bGJtZDBhQ3dnTUNrN1hHNGdJQ0FnSUNCamIyNXpkQ0JwSUQwZ2JtVjNJRWx1ZERNeVFYSnlZWGtvWm5Wc2JGTnBlbVVwTzF4dUlDQWdJQ0FnWTI5dWMzUWdhaUE5SUc1bGR5QkpiblF6TWtGeWNtRjVLR1oxYkd4VGFYcGxLVHRjYmlBZ0lDQWdJR052Ym5OMElHUnBjM1JoYm1ObElEMGdibVYzSUVac2IyRjBNekpCY25KaGVTaG1kV3hzVTJsNlpTazdYRzRnSUNBZ0lDQnNaWFFnYjJabWMyVjBJRDBnTUR0Y2JpQWdJQ0FnSUM4dklITmxkSFJwYm1jZ2RHaGxJSEpsYzNWc2RITmNiaUFnSUNBZ0lHWnZjaUFvWTI5dWMzUWdjbVZ6SUc5bUlISmxjM1ZzZEhNcElIdGNiaUFnSUNBZ0lDQWdhUzV6WlhRb2NtVnpMbWtzSUc5bVpuTmxkQ2s3WEc0Z0lDQWdJQ0FnSUdvdWMyVjBLSEpsY3k1cUxDQnZabVp6WlhRcE8xeHVJQ0FnSUNBZ0lDQmthWE4wWVc1alpTNXpaWFFvY21WekxtUnBjM1JoYm1ObExDQnZabVp6WlhRcE8xeHVJQ0FnSUNBZ0lDQnZabVp6WlhRZ0t6MGdjbVZ6TG1rdWJHVnVaM1JvTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSHRwTENCcUxDQmthWE4wWVc1alpYMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUdGemVXNWpJR05oYkdNOFZENG9kbUZzZFdWek9pQkJjbkpoZVR4VVBpd2dabTVPWVcxbE9pQkxibTkzYmsxbGRISnBZM01zSUhSb2NtVnphRzlzWkRvZ2JuVnRZbVZ5TENCdmNIUnpPaUI3VzE4NklITjBjbWx1WjEwNklHRnVlWDBnUFNCN2ZTa2dlMXh1SUNBZ0lDQWdMeTl6YVhwbElHOW1JR1oxYkd3Z2JXRjBjbWw0WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZWGRoYVhRZ2RHaHBjeTVqWVd4alRYVnNkR2xEYjJ4MWJXNG9XM1poYkhWbGMxMHNJRnRtYms1aGJXVmRMQ0IwYUhKbGMyaHZiR1FzSUZ0dmNIUnpYU3dnV3pGZEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nWVhONWJtTWdaMlYwUzA1T0tGeHVJQ0FnSUNBZ2RtRnNkV1Z6T2lCQmNuSmhlVHhoYm5rK0xDQm1iazVoYldVNklFdHViM2R1VFdWMGNtbGpjeXdnYms1bGFXZG9ZbTkxY25NNklHNTFiV0psY2lBOUlERTFMQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMGdQU0I3ZlZ4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR0YzWVdsMElIUm9hWE11YlhWc2RHbERiMngxYlc1TFRrNG9XM1poYkhWbGMxMHNJRnRtYms1aGJXVmRMQ0J1VG1WcFoyaGliM1Z5Y3l3Z1cyOXdkSE5kTENCYk1WMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaGMzbHVZeUJuWlhSVWFISmxjMmh2YkdSTFRrNG9YRzRnSUNBZ0lDQjJZV3gxWlhNNklFRnljbUY1UEdGdWVUNHNJR1p1VG1GdFpUb2dTMjV2ZDI1TlpYUnlhV056TENCMGFISmxjMmh2YkdRNklHNTFiV0psY2lBOUlEQXVPQ3dnYjNCMGN6b2dlMXRmT2lCemRISnBibWRkT2lCaGJubDlJRDBnZTMxY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoZDJGcGRDQjBhR2x6TG0xMWJIUnBRMjlzZFcxdVZHaHlaWE5vYjJ4a1MyNXVLRnQyWVd4MVpYTmRMQ0JiWm01T1lXMWxYU3dnZEdoeVpYTm9iMnhrTENCYmIzQjBjMTBzSUZzeFhTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUdGemVXNWpJRzExYkhScFEyOXNkVzF1VkdoeVpYTm9iMnhrUzI1dUtIWmhiSFZsY3pvZ1FYSnlZWGs4UVhKeVlYazhZVzU1UGo0c0lHWnVUbUZ0WlhNNklFdHViM2R1VFdWMGNtbGpjMXRkTENCMGFISmxjMmh2YkdRNklHNTFiV0psY2lBOUlEQXVPQ3hjYmlBZ0lDQWdJRzl3ZEhNNklIdGJYem9nYzNSeWFXNW5YVG9nWVc1NWZWdGRMQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYU3hjYmlBZ0lDQWdJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtPaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtJRDBnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSE11UlZWRFRFbEVSVUZPWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0JwWmlBb2RtRnNkV1Z6TG14bGJtZDBhQ0FoUFQwZ1ptNU9ZVzFsY3k1c1pXNW5kR2dnZkh3Z2RtRnNkV1Z6TG14bGJtZDBhQ0FoUFQwZ2IzQjBjeTVzWlc1bmRHZ2dmSHdnZG1Gc2RXVnpMbXhsYm1kMGFDQWhQVDBnZDJWcFoyaDBjeTVzWlc1bmRHZ3BYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25kbUZzZFdWekxDQmthWE4wWVc1alpTQm1kVzVqZEdsdmJuTXNJRzl3ZEdsdmJuTWdZVzVrSUhkbGFXZG9kSE1nWVhKeVlYbHpJSE5vYjNWc1pDQm9ZWFpsSUhSb1pTQnpZVzFsSUd4bGJtZDBhQ2NwTzF4dVhHNGdJQ0FnSUNCcFppQW9kbUZzZFdWekxuTnZiV1VvS0hZcElEMCtJSFl1YkdWdVozUm9JQ0U5UFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvS1NsY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkaGJHd2dkbUZzZFdWeklHRnljbUY1Y3lCemFHOTFiR1FnYUdGMlpTQjBhR1VnYzJGdFpTQnNaVzVuZEdnbktUdGNibHh1SUNBZ0lDQWdZMjl1YzNRZ2JXRjBVMmw2WlNBOUlIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0tpQW9kbUZzZFdWeld6QmRMbXhsYm1kMGFDQXRJREVwSUM4Z01qdGNiaUFnSUNBZ0lHTnZibk4wSUdOb2RXNXJVMmw2WlNBOUlFMWhkR2d1Wm14dmIzSW9iV0YwVTJsNlpTQXZJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVHRjYmlBZ0lDQWdJR052Ym5OMElIQnliMjFwYzJWeklEMWNiaUFnSUNBZ0lDQWdibVYzSUVGeWNtRjVQRkJ5YjIxcGMyVThTMjV1VW1WemRXeDBQajRvZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dUlDQWdJQ0FnWTI5dWMzUWdkMjl5YTJWeWN5QTlJRzVsZHlCQmNuSmhlU2gwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ2xjYmlBZ0lDQWdJQ0FnTG1acGJHd29iblZzYkNrdWJXRndLQ2dwSUQwK0lHNWxkeUJYYjNKclpYSW9ibVYzSUZWU1RDZ25MaTlyYm00dGRHaHlaWE5vYjJ4a0xYZHZjbXRsY2ljc0lHbHRjRzl5ZEM1dFpYUmhMblZ5YkNrcEtUdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHbGtlQ0E5SURBN0lHbGtlQ0E4SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwT3lCcFpIZ3JLeWtnZTF4dUlDQWdJQ0FnSUNCd2NtOXRhWE5sYzF0cFpIaGRJRDBnYm1WM0lGQnliMjFwYzJVb0tISmxjMjlzZG1WWGIzSnJaWElzSUhKbGFtVmpkRmR2Y210bGNpa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBTV1I0SUQwZ2FXUjRJQ29nWTJoMWJtdFRhWHBsTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdWdVpFbGtlQ0E5SUdsa2VDQTlQVDBnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFnTFNBeElEOGdiV0YwVTJsNlpTQTZJQ2hwWkhnZ0t5QXhLU0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvWlc1a1NXUjRJRHc5SUhOMFlYSjBTV1I0S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2EyNXVSR2x6ZEdGdVkyVnpPaUJ1WlhjZ1FYSnlZWGtvTUNrc0lHdHVia2x1WkdWNFpYTTZJRzVsZHlCQmNuSmhlU2d3S1gwcE8xeHVJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1d2IzTjBUV1Z6YzJGblpTaDdkbUZzZFdWekxDQnpkR0Z5ZEVsa2VDd2daVzVrU1dSNExDQm1iazVoYldWekxDQnZjSFJ6TENCMGFISmxjMmh2YkdRc0lIZGxhV2RvZEhNc0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a2ZTazdYRzRnSUNBZ0lDQWdJQ0FnZDI5eWEyVnljMXRwWkhoZExtOXViV1Z6YzJGblpTQTlJQ2g3WkdGMFlUb2dlMlZ5Y205eUxDQnJibTVFYVhOMFlXNWpaWE1zSUd0dWJrbHVaR1Y0WlhOOWZTazZJSFp2YVdRZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1Z5Y205eUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzUwWlhKdGFXNWhkR1VvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WcVpXTjBWMjl5YTJWeUtHVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzUwWlhKdGFXNWhkR1VvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemIyeDJaVmR2Y210bGNpaDdhMjV1UkdsemRHRnVZMlZ6TENCcmJtNUpibVJsZUdWemZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdmVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzVnNkSE1nUFNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNod2NtOXRhWE5sY3lrN1hHNGdJQ0FnSUNCamIyNXpkQ0JyYm01VGFYcGxjeUE5SUc1bGR5QkpiblF6TWtGeWNtRjVLSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ3BPMXh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0J5WlhNZ2IyWWdjbVZ6ZFd4MGN5a2dlMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhaaGJIVmxjMXN3WFM1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNBZ0lDQWdJQ0JyYm01VGFYcGxjMXRwWFNBclBTQnlaWE11YTI1dVNXNWtaWGhsYzF0cFhUOHViR1Z1WjNSb0lEOC9JREE3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JqYjI1emRDQnJibTVTWlhNNklFdHVibEpsYzNWc2RDQTlJSHRjYmlBZ0lDQWdJQ0FnYTI1dVJHbHpkR0Z1WTJWek9pQnVaWGNnUVhKeVlYa29kbUZzZFdWeld6QmRMbXhsYm1kMGFDa3VabWxzYkNodWRXeHNLUzV0WVhBb0tGOHNJR2twSUQwK0lHNWxkeUJCY25KaGVUeHVkVzFpWlhJK0tHdHVibE5wZW1WelcybGRLU2tzWEc0Z0lDQWdJQ0FnSUd0dWJrbHVaR1Y0WlhNNklHNWxkeUJCY25KaGVTaDJZV3gxWlhOYk1GMHViR1Z1WjNSb0tTNW1hV3hzS0c1MWJHd3BMbTFoY0Nnb1h5d2dhU2tnUFQ0Z2JtVjNJRUZ5Y21GNVBHNTFiV0psY2o0b2EyNXVVMmw2WlhOYmFWMHBLWDA3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhKbGN5QnZaaUJ5WlhOMWJIUnpLU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RtRnNkV1Z6V3pCZExteGxibWQwYURzZ0t5dHBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJREE3SUdvZ1BDQnlaWE11YTI1dVJHbHpkR0Z1WTJWelcybGRQeTVzWlc1bmRHZ2dQejhnTURzZ0t5dHFLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnJibTVTWlhNdWEyNXVSR2x6ZEdGdVkyVnpXMmxkVzJ0dWJsTnBlbVZ6VzJsZElDMGdNVjBnUFNCeVpYTXVhMjV1UkdsemRHRnVZMlZ6VzJsZFcycGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2EyNXVVbVZ6TG10dWJrbHVaR1Y0WlhOYmFWMWJhMjV1VTJsNlpYTmJhVjBnTFNBeFhTQTlJSEpsY3k1cmJtNUpibVJsZUdWelcybGRXMnBkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhMjV1VTJsNlpYTmJhVjBnTFQwZ01UdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJyYm01U1pYTTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUdGemVXNWpJRzExYkhScFEyOXNkVzF1UzA1T0tIWmhiSFZsY3pvZ1FYSnlZWGs4UVhKeVlYazhZVzU1UGo0c0lHWnVUbUZ0WlhNNklFdHViM2R1VFdWMGNtbGpjMXRkTENCdVRtVnBaMmhpYjNWeWN6b2diblZ0WW1WeUlEMGdNVFVzWEc0Z0lDQWdJQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMWJYU3dnZDJWcFoyaDBjem9nYm5WdFltVnlXMTBzWEc0Z0lDQWdJQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaRG9nUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ0E5SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6TGtWVlEweEpSRVZCVGx4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsY3k1c1pXNW5kR2dnSVQwOUlHWnVUbUZ0WlhNdWJHVnVaM1JvSUh4OElIWmhiSFZsY3k1c1pXNW5kR2dnSVQwOUlHOXdkSE11YkdWdVozUm9JSHg4SUhaaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUhkbGFXZG9kSE11YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KM1poYkhWbGN5d2daR2x6ZEdGdVkyVWdablZ1WTNScGIyNXpMQ0J2Y0hScGIyNXpJR0Z1WkNCM1pXbG5hSFJ6SUdGeWNtRjVjeUJ6YUc5MWJHUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2duS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLSFpoYkhWbGN5NXpiMjFsS0NoMktTQTlQaUIyTG14bGJtZDBhQ0FoUFQwZ2RtRnNkV1Z6V3pCZExteGxibWQwYUNrcFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbllXeHNJSFpoYkhWbGN5QmhjbkpoZVhNZ2MyaHZkV3hrSUdoaGRtVWdkR2hsSUhOaGJXVWdiR1Z1WjNSb0p5azdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMWhkRk5wZW1VZ1BTQjJZV3gxWlhOYk1GMHViR1Z1WjNSb0lDb2dLSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ2dMU0F4S1NBdklESTdYRzRnSUNBZ0lDQmpiMjV6ZENCamFIVnVhMU5wZW1VZ1BTQk5ZWFJvTG1ac2IyOXlLRzFoZEZOcGVtVWdMeUIwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQndjbTl0YVhObGN5QTlYRzRnSUNBZ0lDQWdJRzVsZHlCQmNuSmhlVHhRY205dGFYTmxQRXR1YmxKbGMzVnNkRDQrS0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSGR2Y210bGNuTWdQU0J1WlhjZ1FYSnlZWGtvZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwWEc0Z0lDQWdJQ0FnSUM1bWFXeHNLRzUxYkd3cExtMWhjQ2dvS1NBOVBpQnVaWGNnVjI5eWEyVnlLRzVsZHlCVlVrd29KeTR2YTI1dUxYZHZjbXRsY2ljc0lHbHRjRzl5ZEM1dFpYUmhMblZ5YkNrcEtUdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHbGtlQ0E5SURBN0lHbGtlQ0E4SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwT3lCcFpIZ3JLeWtnZTF4dUlDQWdJQ0FnSUNCd2NtOXRhWE5sYzF0cFpIaGRJRDBnYm1WM0lGQnliMjFwYzJVb0tISmxjMjlzZG1WWGIzSnJaWElzSUhKbGFtVmpkRmR2Y210bGNpa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBTV1I0SUQwZ2FXUjRJQ29nWTJoMWJtdFRhWHBsTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdWdVpFbGtlQ0E5SUdsa2VDQTlQVDBnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFnTFNBeElEOGdiV0YwVTJsNlpTQTZJQ2hwWkhnZ0t5QXhLU0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvWlc1a1NXUjRJRHc5SUhOMFlYSjBTV1I0S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2EyNXVSR2x6ZEdGdVkyVnpPaUJ1WlhjZ1FYSnlZWGtvTUNrc0lHdHVia2x1WkdWNFpYTTZJRzVsZHlCQmNuSmhlU2d3S1gwcE8xeHVJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1d2IzTjBUV1Z6YzJGblpTaDdkbUZzZFdWekxDQnpkR0Z5ZEVsa2VDd2daVzVrU1dSNExDQm1iazVoYldWekxDQnZjSFJ6TENCdVRtVnBaMmhpYjNWeWN5d2dkMlZwWjJoMGN5d2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUjlLVHRjYmlBZ0lDQWdJQ0FnSUNCM2IzSnJaWEp6VzJsa2VGMHViMjV0WlhOellXZGxJRDBnS0h0a1lYUmhPaUI3WlhKeWIzSXNJR3R1YmtScGMzUmhibU5sY3l3Z2EyNXVTVzVrWlhobGMzMTlLVG9nZG05cFpDQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWlhKeWIzSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkMjl5YTJWeWMxdHBaSGhkTG5SbGNtMXBibUYwWlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpXcGxZM1JYYjNKclpYSW9aWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkMjl5YTJWeWMxdHBaSGhkTG5SbGNtMXBibUYwWlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTnZiSFpsVjI5eWEyVnlLSHRyYm01RWFYTjBZVzVqWlhNc0lHdHVia2x1WkdWNFpYTjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwY3lBOUlHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tIQnliMjFwYzJWektUdGNiaUFnSUNBZ0lHTnZibk4wSUd0dWJsSmxjem9nUzI1dVVtVnpkV3gwSUQwZ2UxeHVJQ0FnSUNBZ0lDQnJibTVFYVhOMFlXNWpaWE02SUc1bGR5QkJjbkpoZVNoMllXeDFaWE5iTUYwdWJHVnVaM1JvS1M1bWFXeHNLRzUxYkd3cExtMWhjQ2dvS1NBOVBpQnVaWGNnUVhKeVlYazhiblZ0WW1WeVBpaHVUbVZwWjJoaWIzVnljeWt1Wm1sc2JDZzVPVGs1T1NrcExGeHVJQ0FnSUNBZ0lDQnJibTVKYm1SbGVHVnpPaUJ1WlhjZ1FYSnlZWGtvZG1Gc2RXVnpXekJkTG14bGJtZDBhQ2t1Wm1sc2JDaHVkV3hzS1M1dFlYQW9LQ2tnUFQ0Z2JtVjNJRUZ5Y21GNVBHNTFiV0psY2o0b2JrNWxhV2RvWW05MWNuTXBMbVpwYkd3b0xURXBLWDA3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhKbGN5QnZaaUJ5WlhOMWJIUnpLU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RtRnNkV1Z6V3pCZExteGxibWQwYURzZ0t5dHBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJREE3SUdvZ1BDQnlaWE11YTI1dVJHbHpkR0Z1WTJWelcybGRQeTVzWlc1bmRHZ2dQejhnTURzZ0t5dHFLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXNXpaWEowVTIxaGJHeGxjaWhyYm01U1pYTXVhMjV1UkdsemRHRnVZMlZ6VzJsZExDQnJibTVTWlhNdWEyNXVTVzVrWlhobGMxdHBYU3dnY21WekxtdHVia1JwYzNSaGJtTmxjMXRwWFZ0cVhTd2djbVZ6TG10dWJrbHVaR1Y0WlhOYmFWMWJhbDBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYTI1dVVtVnpPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaGMzbHVZeUJuWlhSVFlXMXdiR1ZFYVhOMFlXNWpaWE1vZG1Gc2RXVnpPaUJCY25KaGVUeGhibmxiWFQ0c1hHNGdJQ0FnSUNCbWJrNWhiV1Z6T2lCTGJtOTNiazFsZEhKcFkzTmJYU3dnYjNCMGN6b2dlMXRmT2lCemRISnBibWRkT2lCaGJubDlXMTBnUFNCYlhTd2dkMlZwWjJoMGN6b2diblZ0WW1WeVcxMHNYRzRnSUNBZ0lDQmhaMmR5WldkaGRHbHZiazFsZEdodlpEb2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDQTlJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpMa1ZWUTB4SlJFVkJUaWs2SUZCeWIyMXBjMlU4Um14dllYUXpNa0Z5Y21GNVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMGFISmxjMmh2YkdSWGIzSnJaWEp6SUQwZ2JtVjNJRUZ5Y21GNUtIUm9hWE11WDNkdmNtdGxja052ZFc1MEtTNW1hV3hzS0c1MWJHd3BYRzRnSUNBZ0lDQWdJQzV0WVhBb0tDa2dQVDRnYm1WM0lGZHZjbXRsY2lodVpYY2dWVkpNS0NjdUwzTndZWEp6WlMxdFlYUnlhWGd0ZEdoeVpYTm9iMnhrTFhkdmNtdGxjaWNzSUdsdGNHOXlkQzV0WlhSaExuVnliQ2twS1R0Y2JseHVJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwVTJsNlpTQTlJSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ2dLaUFvZG1Gc2RXVnpXekJkTG14bGJtZDBhQ0F0SURFcElDOGdNanRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMmgxYm10VGFYcGxJRDBnVFdGMGFDNW1iRzl2Y2lodFlYUlRhWHBsSUM4Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdFlYaFRZVzF3YkdWVGFYcGxJRDBnTVY4d01EQmZNREF3TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6WVcxd2JHVlRhWE5sSUQwZ1RXRjBhQzV0WVhnb1RXRjBhQzV0YVc0b2JXRjBVMmw2WlNBdklERXdNREFzSUcxaGVGTmhiWEJzWlZOcGVtVXBMQ0JOWVhSb0xtMXBiaWh0WVhSVGFYcGxMQ0J0WVhoVFlXMXdiR1ZUYVhwbEtTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElIUmxjM1JUWlhSVGFYcGxVR1Z5VjI5eWEyVnlJRDBnVFdGMGFDNW1iRzl2Y2loellXMXdiR1ZUYVhObElDOGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBVSEp2YldselpYTWdQU0J1WlhjZ1FYSnlZWGs4VUhKdmJXbHpaVHg3WkdsemRHRnVZMlU2SUVac2IyRjBNekpCY25KaGVYMCtQaWgwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ2s3WEc1Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FXUjRJRDBnTURzZ2FXUjRJRHdnZEdocGN5NWZkMjl5YTJWeVEyOTFiblE3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RGQnliMjFwYzJWelcybGtlRjBnUFNCdVpYY2dVSEp2YldselpTZ29jbVZ6YjJ4MlpWZHZjbXRsY2l3Z2NtVnFaV04wVjI5eWEyVnlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnpkR0Z5ZEVsa2VDQTlJR2xrZUNBcUlHTm9kVzVyVTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVsa2VDQTlJR2xrZUNBOVBUMGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUWdMU0F4SUQ4Z2JXRjBVMmw2WlNBNklDaHBaSGdnS3lBeEtTQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9jbVZ6YUc5c1pGZHZjbXRsY25OYmFXUjRYUzV3YjNOMFRXVnpjMkZuWlNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxjem9nZG1Gc2RXVnpMQ0J6ZEdGeWRFbGtlQ3dnWlc1a1NXUjRMQ0J6WVcxd2JHVk1aVzVuZEdnNklIUmxjM1JUWlhSVGFYcGxVR1Z5VjI5eWEyVnlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQm1iazVoYldWekxDQnZjSFJ6TENCM1pXbG5hSFJ6TENCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUlhiM0pyWlhKelcybGtlRjB1YjI1dFpYTnpZV2RsSUQwZ0tIdGtZWFJoT2lCN1pYSnliM0lzSUdScGMzUmhibU5sZlgwcE9pQjJiMmxrSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHlaWE5vYjJ4a1YyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pYSnliM0lwSUhKbGFtVmpkRmR2Y210bGNpaGxjbkp2Y2lrN0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxWMjl5YTJWeUtIdGthWE4wWVc1alpYMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJR052Ym5OMElISmxjM1ZzZEhNZ1BTQmhkMkZwZENCUWNtOXRhWE5sTG1Gc2JDaDBVSEp2YldselpYTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQm1kV3hzVTJsNlpTQTlJSEpsYzNWc2RITXVjbVZrZFdObEtDaGhZMk1zSUhaaGJDa2dQVDRnWVdOaklDc2dkbUZzTG1ScGMzUmhibU5sTG14bGJtZDBhQ3dnTUNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdScGMzUmhibU5sSUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNobWRXeHNVMmw2WlNrN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J2Wm1aelpYUWdQU0F3TzF4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElISmxjeUJ2WmlCeVpYTjFiSFJ6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdaR2x6ZEdGdVkyVXVjMlYwS0hKbGN5NWthWE4wWVc1alpTd2diMlptYzJWMEtUdGNiaUFnSUNBZ0lDQWdJQ0J2Wm1aelpYUWdLejBnY21WekxtUnBjM1JoYm1ObExteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmthWE4wWVc1alpTNXpiM0owS0NrN1hHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHUnBjM1JoYm1ObE8xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKbGMyaHZiR1JYYjNKclpYSnpQeTVtYjNKRllXTm9LQ2gzS1NBOVBpQjNQeTUwWlhKdGFXNWhkR1VvS1NrN1hHNGdJQ0FnSUNBZ0lHTnZibk52YkdVdVpYSnliM0lvWlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dSbXh2WVhRek1rRnljbUY1S0RFcExtWnBiR3dvTUM0MUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCd2NtbDJZWFJsSUdGemVXNWpJR2RsZEUxcGJtbHRZV3hVYUhKbGMyaHZiR1FvZG1Gc2RXVnpPaUJCY25KaGVUeGhibmxiWFQ0c1hHNGdJQ0FnSUNCbWJrNWhiV1Z6T2lCTGJtOTNiazFsZEhKcFkzTmJYU3dnYjNCMGN6b2dlMXRmT2lCemRISnBibWRkT2lCaGJubDlXMTBnUFNCYlhTd2dkMlZwWjJoMGN6b2diblZ0WW1WeVcxMHNYRzRnSUNBZ0lDQmhaMmR5WldkaGRHbHZiazFsZEdodlpEb2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDQTlJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpMa1ZWUTB4SlJFVkJUaWtnZTF4dUlDQWdJQ0FnTHk5WFpTQnVaV1ZrSUhSdklHTmhiR04xYkdGMFpTQjBhR1VnYldsdWFXMWhiQ0IwYUhKbGMyaHZiR1FnWm1seWMzUXNYRzRnSUNBZ0lDQXZMMmx1SUc5eVpHVnlJSFJ2SUdkbGRDQnRZWFJ5YVhnZ2MzVmphQ0IwYUdGMElHbDBJR1J2WlhNZ2JtOTBJR1Y0WTJWbFpDQjBhR1VnYldGNGFXMTFiU0J6YVhwbElHOW1JREZIUWx4dUlDQWdJQ0FnTHk5M1pTQm9ZWFpsSURNZ2NtVjBkWEp1SUdGeWNtRjVjeXdnWldGamFDQTBJR0pwZEdWeklIQmxjaUJsYkdWdFpXNTBMQ0J6YnlCcFppQjBhR1VnYldGNGFXMTFiU0J6YVhwbElHOW1JSFJvWlNCdFlYUnlhWGdnYVhNZ01VZENMRnh1SUNBZ0lDQWdZMjl1YzNRZ2JXRjRVM0JoY25ObFRXRjBjbWw0VTJsNlpTQTlJRGN3WHpBd01GOHdNREE3WEc0Z0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdFlYUlRhWHBsSUQwZ2RtRnNkV1Z6TG14bGJtZDBhQ0FxSUNoMllXeDFaWE11YkdWdVozUm9JQzBnTVNrZ0x5QXlPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmthWE4wWVc1alpTQTlJR0YzWVdsMElIUm9hWE11WjJWMFUyRnRjR3hsUkdsemRHRnVZMlZ6S0haaGJIVmxjeXdnWm01T1lXMWxjeXdnYjNCMGN5d2dkMlZwWjJoMGN5d2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQm1jbUZqZEdsdmJrbHVaR1Y0SUQwZ1RXRjBhQzVtYkc5dmNpaHRZWGhUY0dGeWMyVk5ZWFJ5YVhoVGFYcGxJQzhnYldGMFUybDZaU0FxSUdScGMzUmhibU5sTG14bGJtZDBhQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFJvY21WemFHOXNaQ0E5SURFZ0xTQmthWE4wWVc1alpWdG1jbUZqZEdsdmJrbHVaR1Y0WFR0Y2JpQWdJQ0FnSUNBZ0x5OGdkR2h5WlhOb2IyeGtJRDBnVFdGMGFDNXRZWGdvZEdoeVpYTm9iMnhrTENBd0xqTXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2h5WlhOb2IyeGtPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQW9aU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpiMnhsTG1WeWNtOXlLR1VwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnTUM0MU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJ6ZEdGMGFXTWdZMkZzWTFONWJtTThWRDRvWEc0Z0lDQWdJQ0IyWVd4MVpYTTZJRUZ5Y21GNVBGUStJSHdnUVhKeVlYbE1hV3RsUEZRK0xDQm1iazVoYldVNklFdHViM2R1VFdWMGNtbGpjeXdnWkdsemRHRnVZMlZHYmpvZ1JuVnVZM1JwYjI0c0lIUm9jbVZ6YUc5c1pEb2diblZ0WW1WeVhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JwT2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNBZ0lDQWdZMjl1YzNRZ2Fqb2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR1JwYzNSaGJtTmxjem9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnSUNBZ0lHeGxkQ0JqYm5RZ1BTQXdPMXh1SUNBZ0lDQWdiR1YwSUcxcElEMGdNRHRjYmlBZ0lDQWdJR3hsZENCdGFpQTlJREE3WEc0Z0lDQWdJQ0JqYjI1emRDQm1kV3hzVTJsNlpTQTlJSFpoYkhWbGN5NXNaVzVuZEdnZ0tpQW9kbUZzZFdWekxteGxibWQwYUNBdElERXBJQzhnTWp0Y2JpQWdJQ0FnSUhkb2FXeGxJQ2hqYm5RZ1BDQm1kV3hzVTJsNlpTa2dlMXh1SUNBZ0lDQWdJQ0F2TDJOdmJuTjBJSFpoYkhWbElEMGdjMlZ4TVV4cGMzUmJiV2xkSUNZbUlITmxjVEZNYVhOMFcyMXFYU0EvSUdoaGJXMXBibWNvYzJWeE1VeHBjM1JiYldsZExDQnpaWEV4VEdsemRGdHRhbDBwSURvZ01EdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNkV1VnUFNBaGFYTk9hV3dvZG1Gc2RXVnpXMjFwWFNrZ0ppWWdJV2x6VG1sc0tIWmhiSFZsYzF0dGFsMHBJRDljYmlBZ0lDQWdJQ0FnSUNCa2FYTjBZVzVqWlVadUtIWmhiSFZsYzF0dGFWMHNJSFpoYkhWbGMxdHRhbDBwSURvZ01UdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MybHRhV3hoY21sMGVTQTlJREVnTFNCMllXeDFaVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tITnBiV2xzWVhKcGRIa2dQajBnZEdoeVpYTm9iMnhrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhUzV3ZFhOb0tHMXBLVHRjYmlBZ0lDQWdJQ0FnSUNCcUxuQjFjMmdvYldvcE8xeHVJQ0FnSUNBZ0lDQWdJR1JwYzNSaGJtTmxjeTV3ZFhOb0tIWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpiblFyS3p0Y2JpQWdJQ0FnSUNBZ2JXb3JLenRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMXFJRDA5UFNCMllXeDFaWE11YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JXa3JLenRjYmlBZ0lDQWdJQ0FnSUNCdGFpQTlJRzFwSUNzZ01UdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JqYjI1emRDQnBRWEp5WVhrZ1BTQnVaWGNnU1c1ME16SkJjbkpoZVNocEtUdGNiaUFnSUNBZ0lHTnZibk4wSUdwQmNuSmhlU0E5SUc1bGR5QkpiblF6TWtGeWNtRjVLR29wTzF4dUlDQWdJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVkJjbkpoZVNBOUlHNWxkeUJHYkc5aGRETXlRWEp5WVhrb1pHbHpkR0Z1WTJWektUdGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlIdHBPaUJwUVhKeVlYa3NJR282SUdwQmNuSmhlU3dnWkdsemRHRnVZMlU2SUdScGMzUmhibU5sUVhKeVlYbDlPMXh1SUNBZ0lIMWNibjFjYmlKZGZRPT0iLCJleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmlvTGF5b3V0KGNsdXN0ZXIsIHNwYXJzZU9iamVjdCwgdGhyZXNob2xkKSB7XG4gICAgY29uc3QgbiA9IGNsdXN0ZXIubGVuZ3RoO1xuICAgIGNvbnN0IGlzID0gW107XG4gICAgY29uc3QganMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBuOyBqKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSBjbHVzdGVyW2ldO1xuICAgICAgICAgICAgY29uc3QgYiA9IGNsdXN0ZXJbal07XG4gICAgICAgICAgICBpZiAoc3BhcnNlT2JqZWN0W2FdPy5bYl0gPj0gdGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgaXMucHVzaChpKTtcbiAgICAgICAgICAgICAgICBqcy5wdXNoKGopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBnZXRMYXlvdXRFbWJlZGRpbmdzKGlzLCBqcywgY2x1c3Rlcik7XG59XG5mdW5jdGlvbiBnZXRMYXlvdXRFbWJlZGRpbmdzKGlzLCBqcywgY2x1c3Rlcikge1xuICAgIGNvbnN0IGVtYmVkWCA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCkubWFwKCgpID0+IE1hdGgucmFuZG9tKCkgKiAxMCk7XG4gICAgY29uc3QgZW1iZWRZID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKS5tYXAoKCkgPT4gTWF0aC5yYW5kb20oKSAqIDEwKTtcbiAgICBjb25zdCBpdGVyYXRpb25zID0gMTAwO1xuICAgIGNvbnN0IHhWZWxvY2l0aWVzID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKTtcbiAgICBjb25zdCB5VmVsb2NpdGllcyA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGVtcGVyYXR1cmUgPSAoMSAtIGkgLyBpdGVyYXRpb25zKTtcbiAgICAgICAgeFZlbG9jaXRpZXMuZmlsbCgwKTtcbiAgICAgICAgeVZlbG9jaXRpZXMuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgaXMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgY29uc3QgYSA9IGlzW2lkeF07XG4gICAgICAgICAgICBjb25zdCBiID0ganNbaWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGR4ID0gZW1iZWRYW2FdIC0gZW1iZWRYW2JdO1xuICAgICAgICAgICAgY29uc3QgZHkgPSBlbWJlZFlbYV0gLSBlbWJlZFlbYl07XG4gICAgICAgICAgICAvLyAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTtcbiAgICAgICAgICAgIC8vICAgY29uc3QgZmFjdG9yID0gKGRpc3RhbmNlIC0gMSkgLyBkaXN0YW5jZTtcbiAgICAgICAgICAgIC8vICAgY29uc3Qgb2Zmc2V0WCA9IGR4ICogZmFjdG9yO1xuICAgICAgICAgICAgLy8gICBjb25zdCBvZmZzZXRZID0gZHkgKiBmYWN0b3I7XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoZHgpID49IDEpIHtcbiAgICAgICAgICAgICAgICB4VmVsb2NpdGllc1thXSAtPSB0ZW1wZXJhdHVyZSAqIGR4O1xuICAgICAgICAgICAgICAgIHhWZWxvY2l0aWVzW2JdICs9IHRlbXBlcmF0dXJlICogZHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoZHkpID49IDEpIHtcbiAgICAgICAgICAgICAgICB5VmVsb2NpdGllc1thXSAtPSB0ZW1wZXJhdHVyZSAqIGR5O1xuICAgICAgICAgICAgICAgIHlWZWxvY2l0aWVzW2JdICs9IHRlbXBlcmF0dXJlICogZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAgIGVtYmVkWVthXSArPSBvZmZzZXRZICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICAvLyAgIGVtYmVkWVtiXSAtPSBvZmZzZXRZICogdGVtcGVyYXR1cmU7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBjb25zdCB2ZWNTaXplID0gTWF0aC5zcXJ0KHhWZWxvY2l0aWVzW2lkeF0gKiB4VmVsb2NpdGllc1tpZHhdICsgeVZlbG9jaXRpZXNbaWR4XSAqIHlWZWxvY2l0aWVzW2lkeF0pO1xuICAgICAgICAgICAgaWYgKHZlY1NpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgZW1iZWRYW2lkeF0gKz0geFZlbG9jaXRpZXNbaWR4XSAvIHZlY1NpemUgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgICAgICBlbWJlZFlbaWR4XSArPSB5VmVsb2NpdGllc1tpZHhdIC8gdmVjU2l6ZSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIG5vcm1hbGl6ZVxuICAgIGxldCBtaW5YID0gZW1iZWRYWzBdO1xuICAgIGxldCBtaW5ZID0gZW1iZWRZWzBdO1xuICAgIGxldCBtYXhYID0gZW1iZWRYWzBdO1xuICAgIGxldCBtYXhZID0gZW1iZWRZWzBdO1xuICAgIGZvciAobGV0IGlkeCA9IDE7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBtaW5YID0gTWF0aC5taW4obWluWCwgZW1iZWRYW2lkeF0pO1xuICAgICAgICBtaW5ZID0gTWF0aC5taW4obWluWSwgZW1iZWRZW2lkeF0pO1xuICAgICAgICBtYXhYID0gTWF0aC5tYXgobWF4WCwgZW1iZWRYW2lkeF0pO1xuICAgICAgICBtYXhZID0gTWF0aC5tYXgobWF4WSwgZW1iZWRZW2lkeF0pO1xuICAgIH1cbiAgICBsZXQgcmFuZ2VYID0gbWF4WCAtIG1pblg7XG4gICAgbGV0IHJhbmdlWSA9IG1heFkgLSBtaW5ZO1xuICAgIGlmIChyYW5nZVggPT09IDApXG4gICAgICAgIHJhbmdlWCA9IG1heFg7XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKVxuICAgICAgICBlbWJlZFhbaWR4XSA9IChlbWJlZFhbaWR4XSAtIG1pblgpIC8gcmFuZ2VYIC8gMiArIDAuNTtcbiAgICBpZiAocmFuZ2VZID09PSAwKVxuICAgICAgICByYW5nZVkgPSBtYXhZO1xuICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKylcbiAgICAgICAgZW1iZWRZW2lkeF0gPSAoZW1iZWRZW2lkeF0gLSBtaW5ZKSAvIHJhbmdlWSAvIDIgKyAwLjU7XG4gICAgcmV0dXJuIHsgZW1iZWRYLCBlbWJlZFkgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVltbHZMV3hoZVc5MWRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW1KcGJ5MXNZWGx2ZFhRdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4VFFVRlRMRU5CUVVNc1QwRkJhVUlzUlVGQlJTeFpRVUZuUXl4RlFVRkZMRk5CUVdsQ08wbEJRM0JITEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGVrSXNUVUZCVFN4RlFVRkZMRWRCUVdFc1JVRkJSU3hEUVVGRE8wbEJRM2hDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRKUVVONFFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUXpGQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXpsQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOeVFpeE5RVUZOTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrSXNTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4VFFVRlRMRVZCUVVVN1owSkJRM0pETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlExZ3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU5hTzFOQlEwWTdTMEZEUmp0SlFVTkVMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU01UXl4RFFVRkRPMEZCUlVRc1UwRkJVeXh0UWtGQmJVSXNRMEZCUXl4RlFVRlpMRVZCUVVVc1JVRkJXU3hGUVVGRkxFOUJRV2xDTzBsQlEzaEZMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVOMFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZEVZc1RVRkJUU3hWUVVGVkxFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlEzWkNMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETjBRc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTTNSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFGQlEyNURMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVONlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0JDTEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFSXNTMEZCU3l4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3V1VGRGVFTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeENMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnNRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycERMRTFCUVUwc1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGFrTXNiVVJCUVcxRU8xbEJRMjVFTERoRFFVRTRRenRaUVVNNVF5eHBRMEZCYVVNN1dVRkRha01zYVVOQlFXbERPMWxCUTJwRExFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzSkNMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOdVF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dGhRVU53UXp0WlFVTkVMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hYUVVGWExFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTnVReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJRenRoUVVOd1F6dFpRVU5JTEhkRFFVRjNRenRaUVVONFF5eDNRMEZCZDBNN1UwRkRka003VVVGRFJDeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkhMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZEWml4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTlCUVU4c1IwRkJSeXhYUVVGWExFTkJRVU03WjBKQlEzaEVMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1QwRkJUeXhIUVVGSExGZEJRVmNzUTBGQlF6dGhRVU42UkR0VFFVTkdPMHRCUTBZN1NVRkZSQ3haUVVGWk8wbEJRMW9zU1VGQlNTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pDTEVsQlFVa3NTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU55UWl4SlFVRkpMRWxCUVVrc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY2tJc1NVRkJTU3hKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUXpkRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNURMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU53UXp0SlFVTkVMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZEZWtJc1NVRkJTU3hOUVVGTkxFZEJRVWNzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTjZRaXhKUVVGSkxFMUJRVTBzUzBGQlN5eERRVUZETzFGQlEyUXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOb1FpeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVN1VVRkRNME1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRTFCUVUwc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlEzaEVMRWxCUVVrc1RVRkJUU3hMUVVGTExFTkJRVU03VVVGRFpDeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRPMGxCUTJoQ0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlR0UlFVTXpReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03U1VGRmVFUXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVU1zUTBGQlF6dEJRVU14UWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1I5SUdaeWIyMGdKeTR2ZEhsd1pYTW5PMXh1WEc1bGVIQnZjblFnWVhONWJtTWdablZ1WTNScGIyNGdZbWx2VEdGNWIzVjBLR05zZFhOMFpYSTZJRzUxYldKbGNsdGRMQ0J6Y0dGeWMyVlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDd2dkR2h5WlhOb2IyeGtPaUJ1ZFcxaVpYSXBJSHRjYmlBZ1kyOXVjM1FnYmlBOUlHTnNkWE4wWlhJdWJHVnVaM1JvTzF4dUlDQmpiMjV6ZENCcGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ2FuTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYmpzZ2FTc3JLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhaUE5SUdrZ0t5QXhPeUJxSUR3Z2Jqc2dhaXNyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoSUQwZ1kyeDFjM1JsY2x0cFhUdGNiaUFnSUNBZ0lHTnZibk4wSUdJZ1BTQmpiSFZ6ZEdWeVcycGRPMXh1SUNBZ0lDQWdhV1lnS0hOd1lYSnpaVTlpYW1WamRGdGhYVDh1VzJKZElENDlJSFJvY21WemFHOXNaQ2tnZTF4dUlDQWdJQ0FnSUNCcGN5NXdkWE5vS0drcE8xeHVJQ0FnSUNBZ0lDQnFjeTV3ZFhOb0tHb3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z1oyVjBUR0Y1YjNWMFJXMWlaV1JrYVc1bmN5aHBjeXdnYW5Nc0lHTnNkWE4wWlhJcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCblpYUk1ZWGx2ZFhSRmJXSmxaR1JwYm1kektHbHpPaUJ1ZFcxaVpYSmJYU3dnYW5NNklHNTFiV0psY2x0ZExDQmpiSFZ6ZEdWeU9pQnVkVzFpWlhKYlhTa2dlMXh1SUNCamIyNXpkQ0JsYldKbFpGZ2dQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLR05zZFhOMFpYSXViR1Z1WjNSb0tTNW1hV3hzS0RBcExtMWhjQ2dvS1NBOVBpQk5ZWFJvTG5KaGJtUnZiU2dwSUNvZ01UQXBPMXh1SUNCamIyNXpkQ0JsYldKbFpGa2dQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLR05zZFhOMFpYSXViR1Z1WjNSb0tTNW1hV3hzS0RBcExtMWhjQ2dvS1NBOVBpQk5ZWFJvTG5KaGJtUnZiU2dwSUNvZ01UQXBPMXh1SUNCamIyNXpkQ0JwZEdWeVlYUnBiMjV6SUQwZ01UQXdPMXh1SUNCamIyNXpkQ0I0Vm1Wc2IyTnBkR2xsY3lBOUlHNWxkeUJHYkc5aGRETXlRWEp5WVhrb1kyeDFjM1JsY2k1c1pXNW5kR2dwTG1acGJHd29NQ2s3WEc0Z0lHTnZibk4wSUhsV1pXeHZZMmwwYVdWeklEMGdibVYzSUVac2IyRjBNekpCY25KaGVTaGpiSFZ6ZEdWeUxteGxibWQwYUNrdVptbHNiQ2d3S1R0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JwZEdWeVlYUnBiMjV6T3lCcEt5c3BJSHRjYmlBZ0lDQmpiMjV6ZENCMFpXMXdaWEpoZEhWeVpTQTlJQ2d4SUMwZ2FTQXZJR2wwWlhKaGRHbHZibk1wTzF4dUlDQWdJSGhXWld4dlkybDBhV1Z6TG1acGJHd29NQ2s3WEc0Z0lDQWdlVlpsYkc5amFYUnBaWE11Wm1sc2JDZ3dLVHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCcGN5NXNaVzVuZEdnN0lHbGtlQ3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoSUQwZ2FYTmJhV1I0WFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0lnUFNCcWMxdHBaSGhkTzF4dUlDQWdJQ0FnWTI5dWMzUWdaSGdnUFNCbGJXSmxaRmhiWVYwZ0xTQmxiV0psWkZoYllsMDdYRzRnSUNBZ0lDQmpiMjV6ZENCa2VTQTlJR1Z0WW1Wa1dWdGhYU0F0SUdWdFltVmtXVnRpWFR0Y2JpQWdJQ0FnSUM4dklDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJVZ1BTQk5ZWFJvTG5OeGNuUW9aSGdnS2lCa2VDQXJJR1I1SUNvZ1pIa3BPMXh1SUNBZ0lDQWdMeThnSUNCamIyNXpkQ0JtWVdOMGIzSWdQU0FvWkdsemRHRnVZMlVnTFNBeEtTQXZJR1JwYzNSaGJtTmxPMXh1SUNBZ0lDQWdMeThnSUNCamIyNXpkQ0J2Wm1aelpYUllJRDBnWkhnZ0tpQm1ZV04wYjNJN1hHNGdJQ0FnSUNBdkx5QWdJR052Ym5OMElHOW1abk5sZEZrZ1BTQmtlU0FxSUdaaFkzUnZjanRjYmlBZ0lDQWdJR2xtSUNoTllYUm9MbUZpY3loa2VDa2dQajBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQjRWbVZzYjJOcGRHbGxjMXRoWFNBdFBTQjBaVzF3WlhKaGRIVnlaU0FxSUdSNE8xeHVJQ0FnSUNBZ0lDQjRWbVZzYjJOcGRHbGxjMXRpWFNBclBTQjBaVzF3WlhKaGRIVnlaU0FxSUdSNE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLRTFoZEdndVlXSnpLR1I1S1NBK1BTQXhLU0I3WEc0Z0lDQWdJQ0FnSUhsV1pXeHZZMmwwYVdWelcyRmRJQzA5SUhSbGJYQmxjbUYwZFhKbElDb2daSGs3WEc0Z0lDQWdJQ0FnSUhsV1pXeHZZMmwwYVdWelcySmRJQ3M5SUhSbGJYQmxjbUYwZFhKbElDb2daSGs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdMeThnSUNCbGJXSmxaRmxiWVYwZ0t6MGdiMlptYzJWMFdTQXFJSFJsYlhCbGNtRjBkWEpsTzF4dUlDQWdJQzh2SUNBZ1pXMWlaV1JaVzJKZElDMDlJRzltWm5ObGRGa2dLaUIwWlcxd1pYSmhkSFZ5WlR0Y2JpQWdJQ0I5WEc0Z0lDQWdabTl5SUNoc1pYUWdhV1I0SUQwZ01Ec2dhV1I0SUR3Z1kyeDFjM1JsY2k1c1pXNW5kR2c3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQjJaV05UYVhwbElEMGdUV0YwYUM1emNYSjBLSGhXWld4dlkybDBhV1Z6VzJsa2VGMGdLaUI0Vm1Wc2IyTnBkR2xsYzF0cFpIaGRJQ3NnZVZabGJHOWphWFJwWlhOYmFXUjRYU0FxSUhsV1pXeHZZMmwwYVdWelcybGtlRjBwTzF4dUlDQWdJQ0FnYVdZZ0tIWmxZMU5wZW1VZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXRnRwWkhoZElDczlJSGhXWld4dlkybDBhV1Z6VzJsa2VGMGdMeUIyWldOVGFYcGxJQ29nZEdWdGNHVnlZWFIxY21VN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV1Z0cFpIaGRJQ3M5SUhsV1pXeHZZMmwwYVdWelcybGtlRjBnTHlCMlpXTlRhWHBsSUNvZ2RHVnRjR1Z5WVhSMWNtVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeThnYm05eWJXRnNhWHBsWEc0Z0lHeGxkQ0J0YVc1WUlEMGdaVzFpWldSWVd6QmRPMXh1SUNCc1pYUWdiV2x1V1NBOUlHVnRZbVZrV1Zzd1hUdGNiaUFnYkdWMElHMWhlRmdnUFNCbGJXSmxaRmhiTUYwN1hHNGdJR3hsZENCdFlYaFpJRDBnWlcxaVpXUlpXekJkTzF4dUlDQm1iM0lnS0d4bGRDQnBaSGdnUFNBeE95QnBaSGdnUENCamJIVnpkR1Z5TG14bGJtZDBhRHNnYVdSNEt5c3BJSHRjYmlBZ0lDQnRhVzVZSUQwZ1RXRjBhQzV0YVc0b2JXbHVXQ3dnWlcxaVpXUllXMmxrZUYwcE8xeHVJQ0FnSUcxcGJsa2dQU0JOWVhSb0xtMXBiaWh0YVc1WkxDQmxiV0psWkZsYmFXUjRYU2s3WEc0Z0lDQWdiV0Y0V0NBOUlFMWhkR2d1YldGNEtHMWhlRmdzSUdWdFltVmtXRnRwWkhoZEtUdGNiaUFnSUNCdFlYaFpJRDBnVFdGMGFDNXRZWGdvYldGNFdTd2daVzFpWldSWlcybGtlRjBwTzF4dUlDQjlYRzRnSUd4bGRDQnlZVzVuWlZnZ1BTQnRZWGhZSUMwZ2JXbHVXRHRjYmlBZ2JHVjBJSEpoYm1kbFdTQTlJRzFoZUZrZ0xTQnRhVzVaTzF4dUlDQnBaaUFvY21GdVoyVllJRDA5UFNBd0tWeHVJQ0FnSUhKaGJtZGxXQ0E5SUcxaGVGZzdYRzRnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJR05zZFhOMFpYSXViR1Z1WjNSb095QnBaSGdyS3lsY2JpQWdJQ0JsYldKbFpGaGJhV1I0WFNBOUlDaGxiV0psWkZoYmFXUjRYU0F0SUcxcGJsZ3BJQzhnY21GdVoyVllJQzhnTWlBcklEQXVOVHRjYmlBZ2FXWWdLSEpoYm1kbFdTQTlQVDBnTUNsY2JpQWdJQ0J5WVc1blpWa2dQU0J0WVhoWk8xeHVJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXdPeUJwWkhnZ1BDQmpiSFZ6ZEdWeUxteGxibWQwYURzZ2FXUjRLeXNwWEc0Z0lDQWdaVzFpWldSWlcybGtlRjBnUFNBb1pXMWlaV1JaVzJsa2VGMGdMU0J0YVc1WktTQXZJSEpoYm1kbFdTQXZJRElnS3lBd0xqVTdYRzVjYmlBZ2NtVjBkWEp1SUh0bGJXSmxaRmdzSUdWdFltVmtXWDA3WEc1OVhHNGlYWDA9IiwiaW1wb3J0IHsgYmlvTGF5b3V0IH0gZnJvbSAnLi9iaW8tbGF5b3V0JztcbmV4cG9ydCBjb25zdCBkZWZhdWx0TUNMT3B0aW9ucyA9IHtcbiAgICBleHBhbmRGYWN0b3I6IDIsXG4gICAgbWF4SXRlcmF0aW9uczogNSxcbiAgICBpbmZsYXRlRmFjdG9yOiAyLFxuICAgIG11bHRGYWN0b3I6IDEsXG59O1xuZXhwb3J0IGNsYXNzIE1DTFNwYXJzZVJlZHVjZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0geyAuLi5kZWZhdWx0TUNMT3B0aW9ucywgLi4ub3B0cyB9O1xuICAgIH1cbiAgICBhc3luYyB0cmFuc2Zvcm0oc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICAvLyB0ZXN0V29ya2VyTXVsdGlwbHkoKTtcbiAgICAgICAgLy8gcmV0dXJuIG5ldyBJbnQzMkFycmF5KG5Sb3dzKTtcbiAgICAgICAgbGV0IHNwYXJzZU9iamVjdCA9IHRoaXMudG9PYmplY3RGb3JtKHNwYXJzZU1hdHJpeCk7XG4gICAgICAgIGlmICh0aGlzLl9vcHRpb25zLm1heEl0ZXJhdGlvbnMgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICAgICAgdGhpcy5ub3JtYWxpemUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fb3B0aW9ucy5tYXhJdGVyYXRpb25zOyBpKyspIHtcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3QgPSB0aGlzLmV4cGFuZChzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluZmxhdGUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY2x1c3RlcnMsIGlzLCBqcyB9ID0gdGhpcy5hc3NpZ25DbHVzdGVycyhzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgdGhpcy5jb3JyZWN0Q2x1c3RlcnMoY2x1c3RlcnMpO1xuICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgdGhpcy5sYXlvdXQoY2x1c3RlcnMsIHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICByZXR1cm4geyBjbHVzdGVycywgZW1iZWRYOiBlbWJlZGRpbmdzLmVtYmVkWCwgZW1iZWRZOiBlbWJlZGRpbmdzLmVtYmVkWSwgaXMsIGpzIH07XG4gICAgfVxuICAgIGNvcnJlY3RDbHVzdGVycyhjbHVzdGVycykge1xuICAgICAgICBjb25zdCBjbHVzdGVyU2l6ZU1hcCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGNsdXN0ZXIgb2YgY2x1c3RlcnMpIHtcbiAgICAgICAgICAgIGlmICghY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0pXG4gICAgICAgICAgICAgICAgY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0gPSAwO1xuICAgICAgICAgICAgY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0rKztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzb3J0ZWRJbmRleGVzID0gT2JqZWN0LmtleXMoY2x1c3RlclNpemVNYXApLm1hcChOdW1iZXIpLnNvcnQoKGEsIGIpID0+IGNsdXN0ZXJTaXplTWFwW2FdIC0gY2x1c3RlclNpemVNYXBbYl0pO1xuICAgICAgICBjb25zdCBjbHVzdGVyTWFwID0ge307XG4gICAgICAgIHNvcnRlZEluZGV4ZXMuZm9yRWFjaCgoY2x1c3RlcklkeCwgaSkgPT4gY2x1c3Rlck1hcFtjbHVzdGVySWR4XSA9IGkgKyAxKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV07XG4gICAgICAgIC8vIGxldCBjdXJDbHVzdGVyID0gMTtcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyAgIGlmICghY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV0pIHtcbiAgICAgICAgLy8gICAgIGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dID0gY3VyQ2x1c3RlcjtcbiAgICAgICAgLy8gICAgIGNsdXN0ZXJzW2ldID0gY3VyQ2x1c3RlcjtcbiAgICAgICAgLy8gICAgIGN1ckNsdXN0ZXIrKztcbiAgICAgICAgLy8gICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgY2x1c3RlcnNbaV0gPSBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgYXN5bmMgbGF5b3V0KGNsdXN0ZXJzLCBzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGNvbnN0IGVtYmVkWCA9IG5ldyBGbG9hdDMyQXJyYXkoblJvd3MpLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IGVtYmVkWSA9IG5ldyBGbG9hdDMyQXJyYXkoblJvd3MpLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJNYXAgPSB7fTtcbiAgICAgICAgY2x1c3RlcnMuZm9yRWFjaCgoY2x1c3RlciwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjbHVzdGVyTWFwW2NsdXN0ZXJdKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJNYXBbY2x1c3Rlcl0gPSBbXTtcbiAgICAgICAgICAgIGNsdXN0ZXJNYXBbY2x1c3Rlcl0ucHVzaChpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNvbnN0IG5DbHVzdGVycyA9IE9iamVjdC5rZXlzKGNsdXN0ZXJNYXApLmxlbmd0aDtcbiAgICAgICAgLy8gY29uc3QgcGVyUm93ID0gTWF0aC5mbG9vcihNYXRoLnNxcnQobkNsdXN0ZXJzKSk7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3Qgc29ydGVkQ2x1c3Rlck5hbWVzID0gT2JqZWN0LmtleXMoY2x1c3Rlck1hcCk7XG4gICAgICAgIHNvcnRlZENsdXN0ZXJOYW1lcy5zb3J0KChhLCBiKSA9PiBjbHVzdGVyTWFwW2JdLmxlbmd0aCAtIGNsdXN0ZXJNYXBbYV0ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHBlclJvdyA9IDY7XG4gICAgICAgIGxldCB5T2Zmc2V0ID0gMDtcbiAgICAgICAgY29uc3QgbGF5b3V0U2l6ZSA9IDU7XG4gICAgICAgIGZvciAoY29uc3QgY2x1c3Rlck5hbWUgb2Ygc29ydGVkQ2x1c3Rlck5hbWVzKSB7XG4gICAgICAgICAgICBjb25zdCBjbHVzdGVyID0gY2x1c3Rlck1hcFtjbHVzdGVyTmFtZV07XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgYmlvTGF5b3V0KGNsdXN0ZXIsIHNwYXJzZU1hdHJpeCwgMC4wMDEpO1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJOdW0gPT09IE1hdGguY2VpbChwZXJSb3cgLyAxLjUpKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgICAgICAgICAgeU9mZnNldCArPSBsYXlvdXRTaXplIC8gcGVyUm93O1xuICAgICAgICAgICAgICAgIHBlclJvdyA9IE1hdGguY2VpbChwZXJSb3cgKiAxLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9ICgoY2x1c3Rlck51bSAlIHBlclJvdykgKiBsYXlvdXRTaXplIC8gcGVyUm93KSAqIDEuNTtcbiAgICAgICAgICAgIC8vIGNvbnN0IG9mZnNldFkgPSBNYXRoLmZsb29yKGNsdXN0ZXJOdW0gLyBwZXJSb3cpICogMjtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW1iZWRkaW5ncy5lbWJlZFgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBlbWJlZFhbY2x1c3RlcltpXV0gPSBlbWJlZGRpbmdzLmVtYmVkWFtpXSAqIGxheW91dFNpemUgLyBwZXJSb3cgKyBvZmZzZXRYO1xuICAgICAgICAgICAgICAgIGVtYmVkWVtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRZW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIHlPZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbHVzdGVyTnVtKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZW1iZWRYLCBlbWJlZFkgfTtcbiAgICB9XG4gICAgbWVyZ2VDbHVzdGVycyhjbHVzdGVycywgaSwgaikge1xuICAgICAgICBjb25zdCBpQ2x1c3RlciA9IGNsdXN0ZXJzW2ldO1xuICAgICAgICBjb25zdCBqQ2x1c3RlciA9IGNsdXN0ZXJzW2pdO1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IGNsdXN0ZXJzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNba10gPT09IGpDbHVzdGVyKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2tdID0gaUNsdXN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXNzaWduQ2x1c3RlcnMoc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICBsZXQgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgIGNvbnN0IGlzID0gW107XG4gICAgICAgIGNvbnN0IGpzID0gW107XG4gICAgICAgIGNvbnN0IG9yZGVyID0gTWF0aC5mbG9vcihNYXRoLm1heChNYXRoLmxvZzEwKG5Sb3dzKSwgMikpICsgMTtcbiAgICAgICAgY29uc3QgbWluT3JkZXIgPSBNYXRoLnBvdygxMCwgb3JkZXIpO1xuICAgICAgICBjb25zdCBjbHVzdGVycyA9IG5ldyBBcnJheShuUm93cykuZmlsbCgtMSk7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXgpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMoc3BhcnNlTWF0cml4W2ldKSkge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHNwYXJzZU1hdHJpeFtpXVtqXSAqIG1pbk9yZGVyKSAvIG1pbk9yZGVyID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICBzcGFyc2VNYXRyaXhbaV1bal0gIT09IE51bWJlcihpKSAmJiBOdW1iZXIoaikgPiBOdW1iZXIoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXMucHVzaChOdW1iZXIoaSkpO1xuICAgICAgICAgICAgICAgICAgICBqcy5wdXNoKE51bWJlcihqKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSAmJiBjbHVzdGVyc1tOdW1iZXIoaildICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IGNsdXN0ZXJzW051bWJlcihqKV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBOdW1iZXIoaSksIE51bWJlcihqKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihqKV0gPSBjbHVzdGVyc1tOdW1iZXIoaSldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaSldID0gY2x1c3RlcnNbTnVtYmVyKGopXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyTnVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW2ldID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgICAgICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY2x1c3RlcnMsIGlzLCBqcyB9O1xuICAgIH1cbiAgICB0b09iamVjdEZvcm0oc3BhcnNlTWF0cml4KSB7XG4gICAgICAgIGNvbnN0IHNwYXJzZU9iamVjdCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYXJzZU1hdHJpeC5pLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXguaVtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXVtzcGFyc2VNYXRyaXgualtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmpbaV1dKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV1bc3BhcnNlTWF0cml4LmlbaV1dID0gMSAtIHNwYXJzZU1hdHJpeC5kaXN0YW5jZVtpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3BhcnNlT2JqZWN0O1xuICAgIH1cbiAgICBhZGRMb29wcyhzcGFyc2VPYmplY3QsIG5Sb3dzKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblJvd3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1baV0gPSB0aGlzLl9vcHRpb25zLm11bHRGYWN0b3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbm9ybWFsaXplKHNwYXJzZU9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzdW0gKz0gcm93W2pdO1xuICAgICAgICAgICAgaWYgKHN1bSA9PT0gMClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtqXSAvPSBzdW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhwYW5kKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgY29uc3QgZXhwYW5kZWRPYmplY3QgPSB7fTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblJvd3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0pXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAvLyBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBleHBhbmRlZE9iamVjdFtpXSA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IGk7IGogPCBuUm93czsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0/LltqXSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy5nZXRFeHBhbmRWYWx1ZShzcGFyc2VPYmplY3QsIGksIGopOyAvL3BydW5pbmcgc3RlcFxuICAgICAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHZhbCAqIG1pbk9yZGVyKSAvIG1pbk9yZGVyID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZE9iamVjdFtpXVtqXSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleHBhbmRlZE9iamVjdFtqXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2pdID0ge307XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2pdW2ldID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhwYW5kZWRPYmplY3Q7XG4gICAgfVxuICAgIC8vIHByaXZhdGUgcHJ1bmUocm93OiBTcGFyc2VNYXRyaXhPYmplY3RbbnVtYmVyXSkge1xuICAgIC8vIH1cbiAgICBpbmZsYXRlKHNwYXJzZU9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdID0gTWF0aC5wb3coc3BhcnNlT2JqZWN0W2ldW2pdLCB0aGlzLl9vcHRpb25zLmluZmxhdGVGYWN0b3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaikge1xuICAgICAgICBsZXQgdmFsID0gMDtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3RbaV0gPz8ge30pO1xuICAgICAgICBjb25zdCBvdGhlckluZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3Rbal0gPz8ge30pO1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgY3VycmVudEluZGV4ZXMpIHtcbiAgICAgICAgICAgIGlmIChvdGhlckluZGV4ZXMuaW5jbHVkZXMoaykpXG4gICAgICAgICAgICAgICAgdmFsICs9IHNwYXJzZU9iamVjdFtpXVtrXSAqIHNwYXJzZU9iamVjdFtqXVtrXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXRnlZMjkyTFdOc2RYTjBaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnRZWEpqYjNZdFkyeDFjM1JsY2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkRRU3hQUVVGUExFVkJRVU1zVTBGQlV5eEZRVUZETEUxQlFVMHNZMEZCWXl4RFFVRkRPMEZCUjNaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGbE8wbEJRek5ETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTJZc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNZVUZCWVN4RlFVRkZMRU5CUVVNN1NVRkRhRUlzVlVGQlZTeEZRVUZGTEVOQlFVTTdRMEZEWkN4RFFVRkRPMEZCUlVZc1RVRkJUU3hQUVVGUExHZENRVUZuUWp0SlFVY3pRaXhaUVVGWkxFOUJRVFJDTEVWQlFVVTdVVUZEZUVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eEZRVUZETEVkQlFVY3NhVUpCUVdsQ0xFVkJRVVVzUjBGQlJ5eEpRVUZKTEVWQlFVTXNRMEZCUXp0SlFVTnNSQ3hEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4WlFVRm5ReXhGUVVGRkxFdEJRV0U3VVVGRGNFVXNkMEpCUVhkQ08xRkJRM2hDTEdkRFFVRm5RenRSUVVOb1F5eEpRVUZKTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEyNUVMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVkQlFVY3NRMEZCUXl4RlFVRkZPMWxCUTI1RExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNXVUZCV1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRMjVETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03V1VGRE4wSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTndSQ3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlEyaEVMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdaMEpCUXpOQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1lVRkRPVUk3VTBGRFJqdFJRVU5FTEUxQlFVMHNSVUZCUXl4UlFVRlJMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzQkZMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZETDBJc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1JVRkJSU3haUVVGWkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEY0VVc1QwRkJUeXhGUVVGRExGRkJRVkVzUlVGQlJTeE5RVUZOTEVWQlFVVXNWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzVlVGQlZTeERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRExFTkJRVU03U1VGRGJFWXNRMEZCUXp0SlFVVlBMR1ZCUVdVc1EwRkJReXhSUVVGclFqdFJRVU40UXl4TlFVRk5MR05CUVdNc1IwRkJNRUlzUlVGQlJTeERRVUZETzFGQlEycEVMRXRCUVVzc1RVRkJUU3hQUVVGUExFbEJRVWtzVVVGQlVTeEZRVUZGTzFsQlF6bENMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETzJkQ1FVTXhRaXhqUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUXpsQ0xHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRPMU5CUXpOQ08xRkJRMFFzVFVGQlRTeGhRVUZoTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0JJTEUxQlFVMHNWVUZCVlN4SFFVRXdRaXhGUVVGRkxFTkJRVU03VVVGRE4wTXNZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla1VzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZPMWxCUTNSRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEZUVNc2MwSkJRWE5DTzFGQlEzUkNMRGhEUVVFNFF6dFJRVU01UXl4dlEwRkJiME03VVVGRGNFTXNORU5CUVRSRE8xRkJRelZETEdkRFFVRm5RenRSUVVOb1F5eHZRa0ZCYjBJN1VVRkRjRUlzWVVGQllUdFJRVU5pTERaRFFVRTJRenRSUVVNM1F5eE5RVUZOTzFGQlEwNHNTVUZCU1R0SlFVTk9MRU5CUVVNN1NVRkZUeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFXdENMRVZCUVVVc1dVRkJaME1zUlVGQlJTeExRVUZoTzFGQlEzUkdMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU12UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGREwwTXNUVUZCVFN4VlFVRlZMRWRCUVRSQ0xFVkJRVVVzUTBGQlF6dFJRVU12UXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRPMmRDUVVOMFFpeFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJRek5DTEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZET1VJc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeHZSRUZCYjBRN1VVRkRjRVFzYlVSQlFXMUVPMUZCUTI1RUxFbEJRVWtzVlVGQlZTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTnVRaXhOUVVGTkxHdENRVUZyUWl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEYmtRc2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVZFc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eFZRVUZWTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE4wWXNTVUZCU1N4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSV1lzU1VGQlNTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoQ0xFMUJRVTBzVlVGQlZTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTnlRaXhMUVVGTExFMUJRVTBzVjBGQlZ5eEpRVUZKTEd0Q1FVRnJRaXhGUVVGRk8xbEJRelZETEUxQlFVMHNUMEZCVHl4SFFVRkhMRlZCUVZVc1EwRkJReXhYUVVGclFpeERRVUZGTEVOQlFVTTdXVUZEYUVRc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRTeFRRVUZUTEVOQlFVTXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU5xUlN4SlFVRkpMRlZCUVZVc1MwRkJTeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSVHRuUWtGRE1VTXNWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRFppeFBRVUZQTEVsQlFVa3NWVUZCVlN4SFFVRkhMRTFCUVUwc1EwRkJRenRuUWtGREwwSXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMkZCUTJ4RE8xbEJRMFFzVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RFFVRkRMRlZCUVZVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFZRVUZWTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8xbEJRM0JGTEhWRVFVRjFSRHRaUVVWMlJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlEycEVMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZWQlFWVXNSMEZCUnl4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRE8yZENRVU14UlN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVkQlFVY3NUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJRenRoUVVNelJUdFpRVU5FTEZWQlFWVXNSVUZCUlN4RFFVRkRPMU5CUTJRN1VVRkRSQ3hQUVVGUExFVkJRVU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUXl4RFFVRkRPMGxCUXpGQ0xFTkJRVU03U1VGRlR5eGhRVUZoTEVOQlFVTXNVVUZCYTBJc1JVRkJSU3hEUVVGVExFVkJRVVVzUTBGQlV6dFJRVU0xUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETjBJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUTNoRExFbEJRVWtzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRkZCUVZFN1owSkJRekZDTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU03VTBGRE1VSTdTVUZEU0N4RFFVRkRPMGxCUTAwc1kwRkJZeXhEUVVGRExGbEJRV2RETEVWQlFVVXNTMEZCWVR0UlFVTnVSU3hKUVVGSkxGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYmtJc1RVRkJUU3hGUVVGRkxFZEJRV0VzUlVGQlJTeERRVUZETzFGQlEzaENMRTFCUVUwc1JVRkJSU3hIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU40UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOeVF5eE5RVUZOTEZGQlFWRXNSMEZCWVN4SlFVRkpMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVJDeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVTdXVUZEZWtNc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTnVSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVZFc1EwRkJReXhEUVVGRExFTkJRVkVzUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRkZCUVZFc1IwRkJSeXhEUVVGRE8yOUNRVU40UlN4WlFVRlpMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETEV0QlFVc3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3YjBKQlEzcEZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRMjVDTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTI1Q0xFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlR0M1FrRkROVVFzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenMwUWtGRE4wTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzNGQ1FVTjBSRHQ1UWtGQlRTeEpRVUZKTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlR0M1FrRkRja01zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR4UWtGRE0wTTdlVUpCUVUwc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3ZDBKQlEzSkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdjVUpCUXpORE8zbENRVUZOTzNkQ1FVTk1MRlZCUVZVc1JVRkJSU3hEUVVGRE8zZENRVU5pTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTTdkMEpCUTJwRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU03Y1VKQlEyeERPMmxDUVVOR08yRkJRMFk3VTBGRFJqdFJRVU5FTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRM1JETEVsQlFVa3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTjBRaXhWUVVGVkxFVkJRVWNzUTBGQlF6dG5Ra0ZEWkN4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETzJGQlF6RkNPMU5CUTBZN1VVRkRSQ3hQUVVGUExFVkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVNc1EwRkJRenRKUVVNMVFpeERRVUZETzBsQlJVMHNXVUZCV1N4RFFVRkRMRmxCUVdkRE8xRkJRMnhFTEUxQlFVMHNXVUZCV1N4SFFVRjVReXhGUVVGRkxFTkJRVU03VVVGRE9VUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bERMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJFTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka01zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGJFWXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOc1F5eFpRVUZaTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTjJReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVOdVJqdFJRVU5FTEU5QlFVOHNXVUZCV1N4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VGRlR5eFJRVUZSTEVOQlFVTXNXVUZCWjBNc1JVRkJSU3hMUVVGaE8xRkJRemxFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRPVUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMnhDTEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03V1VGRGRrSXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xTkJReTlETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRk5CUVZNc1EwRkJReXhaUVVGblF6dFJRVU5vUkN4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVN1dVRkRla01zVFVGQlRTeEhRVUZITEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVZFc1EwRkJReXhEUVVGRE8xbEJRMjVETEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOYUxFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU03WjBKQlF6bENMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTTdXVUZEZGtJc1NVRkJTU3hIUVVGSExFdEJRVXNzUTBGQlF6dG5Ra0ZCUlN4VFFVRlRPMWxCUTNoQ0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU03WjBKQlF6bENMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNN1UwRkRNME03U1VGRFNDeERRVUZETzBsQlJVOHNUVUZCVFN4RFFVRkRMRmxCUVdkRExFVkJRVVVzUzBGQllUdFJRVU0xUkN4TlFVRk5MR05CUVdNc1IwRkJkVUlzUlVGQlJTeERRVUZETzFGQlF6bERMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6ZEVMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0pETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRPVUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMnhDTEZOQlFWTTdXVUZEV0N3clFrRkJLMEk3V1VGREwwSXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU4yUWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU01UWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVOMlFpeFRRVUZUTzJkQ1FVTllMRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdOQlFXTTdaMEpCUTI1RkxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZCUlR0dlFrRkROME1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF6dHZRa0ZETTBJc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTTdkMEpCUTNCQ0xHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN2IwSkJRM3BDTEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdhVUpCUXpWQ08yRkJRMFk3VTBGRFJqdFJRVU5FTEU5QlFVOHNZMEZCWXl4RFFVRkRPMGxCUTNoQ0xFTkJRVU03U1VGRlJDeHRSRUZCYlVRN1NVRkZia1FzU1VGQlNUdEpRVVZKTEU5QlFVOHNRMEZCUXl4WlFVRm5RenRSUVVNNVF5eExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVTdXVUZEZWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzV1VGQldTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMWxCUTI1RExFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU03WjBKQlF6bENMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRlJMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMU5CUXpsSE8wbEJRMGdzUTBGQlF6dEpRVVZQTEdOQlFXTXNRMEZCUXl4WlFVRm5ReXhGUVVGRkxFTkJRVTBzUlVGQlJTeERRVUZOTzFGQlEzSkZMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5hTEUxQlFVMHNZMEZCWXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRekZFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM2hFTEV0QlFVc3NUVUZCVFN4RFFVRkRMRWxCUVVrc1kwRkJZeXhGUVVGRk8xbEJRemxDTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF6RkNMRWRCUVVjc1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMU5CUTJoRk8xRkJRMFFzVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZEWWl4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxTndZWEp6WlUxaGRISnBlRkpsYzNWc2RIMGdabkp2YlNBbkxpNHZaR2x6ZEdGdVkyVXRiV0YwY21sNEwzTndZWEp6WlMxdFlYUnlhWGd0YzJWeWRtbGpaU2M3WEc1cGJYQnZjblFnZTJKcGIweGhlVzkxZEgwZ1puSnZiU0FuTGk5aWFXOHRiR0Y1YjNWMEp6dGNibWx0Y0c5eWRDQjdUVU5NVDNCMGFXOXVjeXdnVTNCaGNuTmxUV0YwY21sNFQySnFaV04wZlNCbWNtOXRJQ2N1TDNSNWNHVnpKenRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR1JsWm1GMWJIUk5RMHhQY0hScGIyNXpPaUJOUTB4UGNIUnBiMjV6SUQwZ2UxeHVJQ0JsZUhCaGJtUkdZV04wYjNJNklESXNYRzRnSUcxaGVFbDBaWEpoZEdsdmJuTTZJRFVzWEc0Z0lHbHVabXhoZEdWR1lXTjBiM0k2SURJc1hHNGdJRzExYkhSR1lXTjBiM0k2SURFc1hHNTlPMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdUVU5NVTNCaGNuTmxVbVZrZFdObGNpQjdYRzRnSUhCeWFYWmhkR1VnWDI5d2RHbHZibk02SUUxRFRFOXdkR2x2Ym5NN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb2IzQjBjem9nVUdGeWRHbGhiRHhOUTB4UGNIUnBiMjV6UGlBOUlIdDlLU0I3WEc0Z0lDQWdkR2hwY3k1ZmIzQjBhVzl1Y3lBOUlIc3VMaTVrWldaaGRXeDBUVU5NVDNCMGFXOXVjeXdnTGk0dWIzQjBjMzA3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWVhONWJtTWdkSEpoYm5ObWIzSnRLSE53WVhKelpVMWhkSEpwZURvZ1UzQmhjbk5sVFdGMGNtbDRVbVZ6ZFd4MExDQnVVbTkzY3pvZ2JuVnRZbVZ5S1NCN1hHNGdJQ0FnTHk4Z2RHVnpkRmR2Y210bGNrMTFiSFJwY0d4NUtDazdYRzRnSUNBZ0x5OGdjbVYwZFhKdUlHNWxkeUJKYm5Rek1rRnljbUY1S0c1U2IzZHpLVHRjYmlBZ0lDQnNaWFFnYzNCaGNuTmxUMkpxWldOMElEMGdkR2hwY3k1MGIwOWlhbVZqZEVadmNtMG9jM0JoY25ObFRXRjBjbWw0S1R0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmYjNCMGFXOXVjeTV0WVhoSmRHVnlZWFJwYjI1eklENGdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NWhaR1JNYjI5d2N5aHpjR0Z5YzJWUFltcGxZM1FzSUc1U2IzZHpLVHRjYmlBZ0lDQWdJSFJvYVhNdWJtOXliV0ZzYVhwbEtITndZWEp6WlU5aWFtVmpkQ2s3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhSb2FYTXVYMjl3ZEdsdmJuTXViV0Y0U1hSbGNtRjBhVzl1Y3pzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUhOd1lYSnpaVTlpYW1WamRDQTlJSFJvYVhNdVpYaHdZVzVrS0hOd1lYSnpaVTlpYW1WamRDd2dibEp2ZDNNcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1sdVpteGhkR1VvYzNCaGNuTmxUMkpxWldOMEtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dWIzSnRZV3hwZW1Vb2MzQmhjbk5sVDJKcVpXTjBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnZTJOc2RYTjBaWEp6TENCcGN5d2dhbk45SUQwZ2RHaHBjeTVoYzNOcFoyNURiSFZ6ZEdWeWN5aHpjR0Z5YzJWUFltcGxZM1FzSUc1U2IzZHpLVHRjYmlBZ0lDQjBhR2x6TG1OdmNuSmxZM1JEYkhWemRHVnljeWhqYkhWemRHVnljeWs3WEc0Z0lDQWdZMjl1YzNRZ1pXMWlaV1JrYVc1bmN5QTlJR0YzWVdsMElIUm9hWE11YkdGNWIzVjBLR05zZFhOMFpYSnpMQ0J6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0J5WlhSMWNtNGdlMk5zZFhOMFpYSnpMQ0JsYldKbFpGZzZJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUllMQ0JsYldKbFpGazZJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUlpMQ0JwY3l3Z2FuTjlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JqYjNKeVpXTjBRMngxYzNSbGNuTW9ZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyeDFjM1JsY2xOcGVtVk5ZWEE2SUh0Ylh6b2diblZ0WW1WeVhUb2diblZ0WW1WeWZTQTlJSHQ5TzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWTJ4MWMzUmxjaUJ2WmlCamJIVnpkR1Z5Y3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0ZqYkhWemRHVnlVMmw2WlUxaGNGdGpiSFZ6ZEdWeVhTbGNiaUFnSUNBZ0lDQWdZMngxYzNSbGNsTnBlbVZOWVhCYlkyeDFjM1JsY2wwZ1BTQXdPMXh1SUNBZ0lDQWdZMngxYzNSbGNsTnBlbVZOWVhCYlkyeDFjM1JsY2wwckt6dGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdjMjl5ZEdWa1NXNWtaWGhsY3lBOUlFOWlhbVZqZEM1clpYbHpLR05zZFhOMFpYSlRhWHBsVFdGd0tTNXRZWEFvVG5WdFltVnlLUzV6YjNKMEtDaGhMQ0JpS1NBOVBpQmpiSFZ6ZEdWeVUybDZaVTFoY0Z0aFhTQXRJR05zZFhOMFpYSlRhWHBsVFdGd1cySmRLVHRjYmlBZ0lDQmpiMjV6ZENCamJIVnpkR1Z5VFdGd09pQjdXMTg2SUc1MWJXSmxjbDA2SUc1MWJXSmxjbjBnUFNCN2ZUdGNiaUFnSUNCemIzSjBaV1JKYm1SbGVHVnpMbVp2Y2tWaFkyZ29LR05zZFhOMFpYSkpaSGdzSUdrcElEMCtJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxja2xrZUYwZ1BTQnBJQ3NnTVNrN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCamJIVnpkR1Z5Y3k1c1pXNW5kR2c3SUdrckt5bGNiaUFnSUNBZ0lHTnNkWE4wWlhKelcybGRJRDBnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5YzF0cFhWMDdYRzRnSUNBZ0x5OGdiR1YwSUdOMWNrTnNkWE4wWlhJZ1BTQXhPMXh1SUNBZ0lDOHZJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWTJ4MWMzUmxjbk11YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBdkx5QWdJR2xtSUNnaFkyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeWMxdHBYVjBwSUh0Y2JpQWdJQ0F2THlBZ0lDQWdZMngxYzNSbGNrMWhjRnRqYkhWemRHVnljMXRwWFYwZ1BTQmpkWEpEYkhWemRHVnlPMXh1SUNBZ0lDOHZJQ0FnSUNCamJIVnpkR1Z5YzF0cFhTQTlJR04xY2tOc2RYTjBaWEk3WEc0Z0lDQWdMeThnSUNBZ0lHTjFja05zZFhOMFpYSXJLenRjYmlBZ0lDQXZMeUFnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdMeThnSUNBZ0lHTnNkWE4wWlhKelcybGRJRDBnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5YzF0cFhWMDdYRzRnSUNBZ0x5OGdJQ0I5WEc0Z0lDQWdMeThnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJzWVhsdmRYUW9ZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRMQ0J6Y0dGeWMyVk5ZWFJ5YVhnNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDd2dibEp2ZDNNNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUdOdmJuTjBJR1Z0WW1Wa1dDQTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29ibEp2ZDNNcExtWnBiR3dvTUNrN1hHNGdJQ0FnWTI5dWMzUWdaVzFpWldSWklEMGdibVYzSUVac2IyRjBNekpCY25KaGVTaHVVbTkzY3lrdVptbHNiQ2d3S1R0Y2JpQWdJQ0JqYjI1emRDQmpiSFZ6ZEdWeVRXRndPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY2x0ZGZTQTlJSHQ5TzF4dUlDQWdJR05zZFhOMFpYSnpMbVp2Y2tWaFkyZ29LR05zZFhOMFpYSXNJR2twSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2doWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5WFNsY2JpQWdJQ0FnSUNBZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVhTQTlJRnRkTzF4dUlDQWdJQ0FnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5WFM1d2RYTm9LR2twTzF4dUlDQWdJSDBwTzF4dUlDQWdJQzh2SUdOdmJuTjBJRzVEYkhWemRHVnljeUE5SUU5aWFtVmpkQzVyWlhsektHTnNkWE4wWlhKTllYQXBMbXhsYm1kMGFEdGNiaUFnSUNBdkx5QmpiMjV6ZENCd1pYSlNiM2NnUFNCTllYUm9MbVpzYjI5eUtFMWhkR2d1YzNGeWRDaHVRMngxYzNSbGNuTXBLVHRjYmlBZ0lDQnNaWFFnWTJ4MWMzUmxjazUxYlNBOUlEQTdYRzRnSUNBZ1kyOXVjM1FnYzI5eWRHVmtRMngxYzNSbGNrNWhiV1Z6SUQwZ1QySnFaV04wTG10bGVYTW9ZMngxYzNSbGNrMWhjQ2s3WEc0Z0lDQWdjMjl5ZEdWa1EyeDFjM1JsY2s1aGJXVnpMbk52Y25Rb0tHRXNJR0lwSUQwK0lHTnNkWE4wWlhKTllYQmJZaUJoY3lCaGJubGRMbXhsYm1kMGFDQXRJR05zZFhOMFpYSk5ZWEJiWVNCaGN5QmhibmxkTG14bGJtZDBhQ2s3WEc0Z0lDQWdiR1YwSUhCbGNsSnZkeUE5SURZN1hHNWNiaUFnSUNCc1pYUWdlVTltWm5ObGRDQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2JHRjViM1YwVTJsNlpTQTlJRFU3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JqYkhWemRHVnlUbUZ0WlNCdlppQnpiM0owWldSRGJIVnpkR1Z5VG1GdFpYTXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHTnNkWE4wWlhJZ1BTQmpiSFZ6ZEdWeVRXRndXMk5zZFhOMFpYSk9ZVzFsSUdGeklHRnVlVjBoTzF4dUlDQWdJQ0FnWTI5dWMzUWdaVzFpWldSa2FXNW5jeUE5SUdGM1lXbDBJR0pwYjB4aGVXOTFkQ2hqYkhWemRHVnlMQ0J6Y0dGeWMyVk5ZWFJ5YVhnc0lEQXVNREF4S1R0Y2JpQWdJQ0FnSUdsbUlDaGpiSFZ6ZEdWeVRuVnRJRDA5UFNCTllYUm9MbU5sYVd3b2NHVnlVbTkzSUM4Z01TNDFLU2tnZTF4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5VG5WdElEMGdNRHRjYmlBZ0lDQWdJQ0FnZVU5bVpuTmxkQ0FyUFNCc1lYbHZkWFJUYVhwbElDOGdjR1Z5VW05M08xeHVJQ0FnSUNBZ0lDQndaWEpTYjNjZ1BTQk5ZWFJvTG1ObGFXd29jR1Z5VW05M0lDb2dNUzQxS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdOdmJuTjBJRzltWm5ObGRGZ2dQU0FvS0dOc2RYTjBaWEpPZFcwZ0pTQndaWEpTYjNjcElDb2diR0Y1YjNWMFUybDZaU0F2SUhCbGNsSnZkeWtnS2lBeExqVTdYRzRnSUNBZ0lDQXZMeUJqYjI1emRDQnZabVp6WlhSWklEMGdUV0YwYUM1bWJHOXZjaWhqYkhWemRHVnlUblZ0SUM4Z2NHVnlVbTkzS1NBcUlESTdYRzVjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWlcxaVpXUmthVzVuY3k1bGJXSmxaRmd1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdaVzFpWldSWVcyTnNkWE4wWlhKYmFWMWRJRDBnWlcxaVpXUmthVzVuY3k1bGJXSmxaRmhiYVYwZ0tpQnNZWGx2ZFhSVGFYcGxJQzhnY0dWeVVtOTNJQ3NnYjJabWMyVjBXRHRjYmlBZ0lDQWdJQ0FnWlcxaVpXUlpXMk5zZFhOMFpYSmJhVjFkSUQwZ1pXMWlaV1JrYVc1bmN5NWxiV0psWkZsYmFWMGdLaUJzWVhsdmRYUlRhWHBsSUM4Z2NHVnlVbTkzSUNzZ2VVOW1abk5sZER0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdOc2RYTjBaWEpPZFcwckt6dGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSHRsYldKbFpGZ3NJR1Z0WW1Wa1dYMDdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRzFsY21kbFEyeDFjM1JsY25Nb1kyeDFjM1JsY25NNklHNTFiV0psY2x0ZExDQnBPaUJ1ZFcxaVpYSXNJR282SUc1MWJXSmxjaWtnZTF4dUlDQWdJR052Ym5OMElHbERiSFZ6ZEdWeUlEMGdZMngxYzNSbGNuTmJhVjA3WEc0Z0lDQWdZMjl1YzNRZ2FrTnNkWE4wWlhJZ1BTQmpiSFZ6ZEdWeWMxdHFYVHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnJJRDBnTURzZ2F5QThJR05zZFhOMFpYSnpMbXhsYm1kMGFEc2dheXNyS1NCN1hHNGdJQ0FnSUNCcFppQW9ZMngxYzNSbGNuTmJhMTBnUFQwOUlHcERiSFZ6ZEdWeUtWeHVJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeWMxdHJYU0E5SUdsRGJIVnpkR1Z5TzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J3ZFdKc2FXTWdZWE56YVdkdVEyeDFjM1JsY25Nb2MzQmhjbk5sVFdGMGNtbDRPaUJUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1FzSUc1U2IzZHpPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQnNaWFFnWTJ4MWMzUmxjazUxYlNBOUlEQTdYRzRnSUNBZ1kyOXVjM1FnYVhNNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lDQWdZMjl1YzNRZ2FuTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnWTI5dWMzUWdiM0prWlhJZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWJXRjRLRTFoZEdndWJHOW5NVEFvYmxKdmQzTXBMQ0F5S1NrZ0t5QXhPMXh1SUNBZ0lHTnZibk4wSUcxcGJrOXlaR1Z5SUQwZ1RXRjBhQzV3YjNjb01UQXNJRzl5WkdWeUtUdGNiaUFnSUNCamIyNXpkQ0JqYkhWemRHVnljem9nYm5WdFltVnlXMTBnUFNCdVpYY2dRWEp5WVhrb2JsSnZkM01wTG1acGJHd29MVEVwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQlBZbXBsWTNRdWEyVjVjeWh6Y0dGeWMyVk5ZWFJ5YVhncEtTQjdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR29nYjJZZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFRXRjBjbWw0VzJrZ1lYTWdZVzU1WFNrcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0UxaGRHZ3VjbTkxYm1Rb2MzQmhjbk5sVFdGMGNtbDRXMmtnWVhNZ1lXNTVYVnRxSUdGeklHRnVlVjBnS2lCdGFXNVBjbVJsY2lrZ0x5QnRhVzVQY21SbGNpQStJREFnSmlaY2JpQWdJQ0FnSUNBZ0lDQnpjR0Z5YzJWTllYUnlhWGhiYVNCaGN5QmhibmxkVzJvZ1lYTWdZVzU1WFNBaFBUMGdUblZ0WW1WeUtHa3BJQ1ltSUU1MWJXSmxjaWhxS1NBK0lFNTFiV0psY2locEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdsekxuQjFjMmdvVG5WdFltVnlLR2twS1R0Y2JpQWdJQ0FnSUNBZ0lDQnFjeTV3ZFhOb0tFNTFiV0psY2locUtTazdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMGdJVDA5SUMweElDWW1JR05zZFhOMFpYSnpXMDUxYldKbGNpaHFLVjBnSVQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjbk5iVG5WdFltVnlLR2twWFNBaFBUMGdZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dFpYSm5aVU5zZFhOMFpYSnpLR05zZFhOMFpYSnpMQ0JPZFcxaVpYSW9hU2tzSUU1MWJXSmxjaWhxS1NrN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hqYkhWemRHVnljMXRPZFcxaVpYSW9hU2xkSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU0E5SUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhwS1YwN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hqYkhWemRHVnljMXRPZFcxaVpYSW9haWxkSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMngxYzNSbGNuTmJUblZ0WW1WeUtHa3BYU0E5SUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc2RYTjBaWEpPZFcwckt6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhwS1YwZ1BTQmpiSFZ6ZEdWeVRuVnRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyeDFjM1JsY25OYlRuVnRZbVZ5S0dvcFhTQTlJR05zZFhOMFpYSk9kVzA3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdadmNpQW9iR1YwSUdrOU1Ec2dhU0E4SUdOc2RYTjBaWEp6TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjbk5iYVYwZ1BUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lHTnNkWE4wWlhKT2RXMGdLeXM3WEc0Z0lDQWdJQ0FnSUdOc2RYTjBaWEp6VzJsZElEMGdZMngxYzNSbGNrNTFiVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUh0amJIVnpkR1Z5Y3l3Z2FYTXNJR3B6ZlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCMGIwOWlhbVZqZEVadmNtMG9jM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFNaWE4xYkhRcE9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUWdlMXh1SUNBZ0lHTnZibk4wSUhOd1lYSnpaVTlpYW1WamREb2dlMXRmT2lCdWRXMWlaWEpkT2lCN1cxODZJRzUxYldKbGNsMDZJRzUxYldKbGNuMTlJRDBnZTMwN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCemNHRnljMlZOWVhSeWFYZ3VhUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z6Y0dGeWMyVlBZbXBsWTNSYmMzQmhjbk5sVFdGMGNtbDRMbWxiYVYxZEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkSUQwZ2UzMDdYRzRnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkVzNOd1lYSnpaVTFoZEhKcGVDNXFXMmxkWFNBOUlERWdMU0J6Y0dGeWMyVk5ZWFJ5YVhndVpHbHpkR0Z1WTJWYmFWMDdYRzRnSUNBZ0lDQnBaaUFvSVhOd1lYSnpaVTlpYW1WamRGdHpjR0Z5YzJWTllYUnlhWGd1YWx0cFhWMHBYRzRnSUNBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYwZ1BTQjdmVHRjYmlBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYxYmMzQmhjbk5sVFdGMGNtbDRMbWxiYVYxZElEMGdNU0F0SUhOd1lYSnpaVTFoZEhKcGVDNWthWE4wWVc1alpWdHBYVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhOd1lYSnpaVTlpYW1WamREdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZV1JrVEc5dmNITW9jM0JoY25ObFQySnFaV04wT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1U2IzZHpPeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFcybGRLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFWMGdQU0I3ZlR0Y2JpQWdJQ0FnSUhOd1lYSnpaVTlpYW1WamRGdHBYVnRwWFNBOUlIUm9hWE11WDI5d2RHbHZibk11YlhWc2RFWmhZM1J2Y2p0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUc1dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ2tnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQlBZbXBsWTNRdWEyVjVjeWh6Y0dGeWMyVlBZbXBsWTNRcEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeWIzY2dQU0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZE8xeHVJQ0FnSUNBZ2JHVjBJSE4xYlNBOUlEQTdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR29nYjJZZ1QySnFaV04wTG10bGVYTW9jbTkzS1NsY2JpQWdJQ0FnSUNBZ2MzVnRJQ3M5SUhKdmQxdHFJR0Z6SUdGdWVWMDdYRzRnSUNBZ0lDQnBaaUFvYzNWdElEMDlQU0F3S1NCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FpQnZaaUJQWW1wbFkzUXVhMlY1Y3loeWIzY3BLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTQXZQU0J6ZFcwN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCbGVIQmhibVFvYzNCaGNuTmxUMkpxWldOME9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUXNJRzVTYjNkek9pQnVkVzFpWlhJcElIdGNiaUFnSUNCamIyNXpkQ0JsZUhCaGJtUmxaRTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBJRDBnZTMwN1hHNGdJQ0FnWTI5dWMzUWdiM0prWlhJZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWJXRjRLRTFoZEdndWJHOW5NVEFvYmxKdmQzTXBMQ0F5S1NrZ0t5QXhPMXh1SUNBZ0lHTnZibk4wSUcxcGJrOXlaR1Z5SUQwZ1RXRjBhQzV3YjNjb01UQXNJRzl5WkdWeUtUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHNVNiM2R6T3lCcEt5c3BJSHRjYmlBZ0lDQWdJR2xtSUNnaGMzQmhjbk5sVDJKcVpXTjBXMmxkS1Z4dUlDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUM4dklHTnZibk4wSUhKdmR5QTlJSE53WVhKelpVOWlhbVZqZEZ0cFhUdGNiaUFnSUNBZ0lHVjRjR0Z1WkdWa1QySnFaV04wVzJsZElEMGdlMzA3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JxSUQwZ2FUc2dhaUE4SUc1U2IzZHpPeUJxS3lzcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGemNHRnljMlZQWW1wbFkzUmJhVjAvTGx0cVhTbGNiaUFnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkbUZzSUQwZ2RHaHBjeTVuWlhSRmVIQmhibVJXWVd4MVpTaHpjR0Z5YzJWUFltcGxZM1FzSUdrc0lHb3BPeUF2TDNCeWRXNXBibWNnYzNSbGNGeHVJQ0FnSUNBZ0lDQnBaaUFvVFdGMGFDNXliM1Z1WkNoMllXd2dLaUJ0YVc1UGNtUmxjaWtnTHlCdGFXNVBjbVJsY2lBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCbGVIQmhibVJsWkU5aWFtVmpkRnRwWFZ0cVhTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvSVdWNGNHRnVaR1ZrVDJKcVpXTjBXMnBkS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdaWGh3WVc1a1pXUlBZbXBsWTNSYmFsMGdQU0I3ZlR0Y2JpQWdJQ0FnSUNBZ0lDQmxlSEJoYm1SbFpFOWlhbVZqZEZ0cVhWdHBYU0E5SUhaaGJEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWlhod1lXNWtaV1JQWW1wbFkzUTdYRzRnSUgxY2JseHVJQ0F2THlCd2NtbDJZWFJsSUhCeWRXNWxLSEp2ZHpvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMFcyNTFiV0psY2wwcElIdGNibHh1SUNBdkx5QjlYRzVjYmlBZ2NISnBkbUYwWlNCcGJtWnNZWFJsS0hOd1lYSnpaVTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBLU0I3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JwSUc5bUlFOWlhbVZqZEM1clpYbHpLSE53WVhKelpVOWlhbVZqZENrcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhKdmR5QTlJSE53WVhKelpVOWlhbVZqZEZ0cElHRnpJR0Z1ZVYwN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHb2diMllnVDJKcVpXTjBMbXRsZVhNb2NtOTNLU2xjYmlBZ0lDQWdJQ0FnYzNCaGNuTmxUMkpxWldOMFcya2dZWE1nWVc1NVhWdHFJR0Z6SUdGdWVWMGdQU0JOWVhSb0xuQnZkeWh6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTd2dkR2hwY3k1ZmIzQjBhVzl1Y3k1cGJtWnNZWFJsUm1GamRHOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2RsZEVWNGNHRnVaRlpoYkhWbEtITndZWEp6WlU5aWFtVmpkRG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wTENCcE9pQmhibmtzSUdvNklHRnVlU2tnZTF4dUlDQWdJR3hsZENCMllXd2dQU0F3TzF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SSmJtUmxlR1Z6SUQwZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFQySnFaV04wVzJsZElEOC9JSHQ5S1R0Y2JpQWdJQ0JqYjI1emRDQnZkR2hsY2tsdVpHVjRaWE1nUFNCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWUFltcGxZM1JiYWwwZ1B6OGdlMzBwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYXlCdlppQmpkWEp5Wlc1MFNXNWtaWGhsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzkwYUdWeVNXNWtaWGhsY3k1cGJtTnNkV1JsY3locktTbGNiaUFnSUNBZ0lDQWdkbUZzSUNzOUlITndZWEp6WlU5aWFtVmpkRnRwWFZ0cklHRnpJR0Z1ZVYwZ0tpQnpjR0Z5YzJWUFltcGxZM1JiYWwxYmF5QmhjeUJoYm5sZE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkbUZzTzF4dUlDQjlYRzU5WEc1Y2JpSmRmUT09IiwiaW1wb3J0IHsgU3BhcnNlTWF0cml4U2VydmljZSB9IGZyb20gJy4uL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UnO1xuaW1wb3J0IHsgTUNMU3BhcnNlUmVkdWNlciB9IGZyb20gJy4vbWFyY292LWNsdXN0ZXInO1xub25tZXNzYWdlID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyBkYXRhLCB0aHJlc2hvbGQsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kLCBkaXN0YW5jZUZuQXJncywgZGlzdGFuY2VGbnMsIG1heEl0ZXJhdGlvbnMgfSA9IGV2ZW50LmRhdGE7XG4gICAgY29uc3Qgc3BhcnNlID0gYXdhaXQgbmV3IFNwYXJzZU1hdHJpeFNlcnZpY2UoKVxuICAgICAgICAuY2FsY011bHRpQ29sdW1uKGRhdGEsIGRpc3RhbmNlRm5zLCB0aHJlc2hvbGQgLyAxMDAsIGRpc3RhbmNlRm5BcmdzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgbmV3IE1DTFNwYXJzZVJlZHVjZXIoeyBtYXhJdGVyYXRpb25zOiBtYXhJdGVyYXRpb25zID8/IDUgfSkudHJhbnNmb3JtKHNwYXJzZSwgZGF0YVswXS5sZW5ndGgpO1xuICAgIHBvc3RNZXNzYWdlKHsgcmVzIH0pO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXTnNMWGR2Y210bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW0xamJDMTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVUZETEcxQ1FVRnRRaXhGUVVGRExFMUJRVTBzTUVOQlFUQkRMRU5CUVVNN1FVRkhOMFVzVDBGQlR5eEZRVUZETEdkQ1FVRm5RaXhGUVVGRExFMUJRVTBzYTBKQlFXdENMRU5CUVVNN1FVRkZiRVFzVTBGQlV5eEhRVUZITEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRKUVVNeFFpeE5RVUZOTEVWQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1kwRkJZeXhGUVVGRkxGZEJRVmNzUlVGQlJTeGhRVUZoTEVWQlFVTXNSMEZIYUVJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU14Uml4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzYlVKQlFXMUNMRVZCUVVVN1UwRkRNME1zWlVGQlpTeERRVUZETEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1UwRkJVeXhIUVVGSExFZEJRVWNzUlVGQlJTeGpRVUZqTEVWQlFVVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZEYmtjc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFVkJRVU1zWVVGQllTeEZRVUZGTEdGQlFXRXNTVUZCU1N4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlF6bEhMRmRCUVZjc1EwRkJReXhGUVVGRExFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tJc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhUWlhKMmFXTmxmU0JtY205dElDY3VMaTlrYVhOMFlXNWpaUzF0WVhSeWFYZ3ZjM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sSnp0Y2JtbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkgwZ1puSnZiU0FuTGk0dlpHbHpkR0Z1WTJVdGJXRjBjbWw0TDNSNWNHVnpKenRjYm1sdGNHOXlkQ0I3UzI1dmQyNU5aWFJ5YVdOemZTQm1jbTl0SUNjdUxpOTBlWEJsWkMxdFpYUnlhV056Snp0Y2JtbHRjRzl5ZENCN1RVTk1VM0JoY25ObFVtVmtkV05sY24wZ1puSnZiU0FuTGk5dFlYSmpiM1l0WTJ4MWMzUmxjaWM3WEc1Y2JtOXViV1Z6YzJGblpTQTlJR0Z6ZVc1aklDaGxkbVZ1ZENrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3WkdGMFlTd2dkR2h5WlhOb2IyeGtMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnWkdsemRHRnVZMlZHYmtGeVozTXNJR1JwYzNSaGJtTmxSbTV6TENCdFlYaEpkR1Z5WVhScGIyNXpmVHBjYmlBZ0lIdGtZWFJoT2lCaGJubGJYVnRkTENCMGFISmxjMmh2YkdRNklHNTFiV0psY2l4Y2JpQWdJQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYU3dnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFzWEc0Z0lDQWdaR2x6ZEdGdVkyVkdibk02SUV0dWIzZHVUV1YwY21samMxdGRMQ0JrYVhOMFlXNWpaVVp1UVhKbmN6b2dZVzU1VzEwc0lHMWhlRWwwWlhKaGRHbHZibk02SUc1MWJXSmxjbjBnUFNCbGRtVnVkQzVrWVhSaE8xeHVJQ0JqYjI1emRDQnpjR0Z5YzJVZ1BTQmhkMkZwZENCdVpYY2dVM0JoY25ObFRXRjBjbWw0VTJWeWRtbGpaU2dwWEc0Z0lDQWdMbU5oYkdOTmRXeDBhVU52YkhWdGJpaGtZWFJoTENCa2FYTjBZVzVqWlVadWN5d2dkR2h5WlhOb2IyeGtJQzhnTVRBd0xDQmthWE4wWVc1alpVWnVRWEpuY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcE8xeHVJQ0JqYjI1emRDQnlaWE1nUFNCaGQyRnBkQ0J1WlhjZ1RVTk1VM0JoY25ObFVtVmtkV05sY2loN2JXRjRTWFJsY21GMGFXOXVjem9nYldGNFNYUmxjbUYwYVc5dWN5QS9QeUExZlNrdWRISmhibk5tYjNKdEtITndZWEp6WlN3Z1pHRjBZVnN3WFM1c1pXNW5kR2dwTzF4dUlDQndiM04wVFdWemMyRm5aU2g3Y21WemZTazdYRzU5TzF4dUlsMTkiXSwibmFtZXMiOlsiRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwiY2h1bmtJZCIsImciLCJnbG9iYWxUaGlzIiwidGhpcyIsIkZ1bmN0aW9uIiwiZSIsIndpbmRvdyIsIm8iLCJvYmoiLCJwcm9wIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwic2NyaXB0VXJsIiwiaW1wb3J0U2NyaXB0cyIsImxvY2F0aW9uIiwiZG9jdW1lbnQiLCJjdXJyZW50U2NyaXB0Iiwic3JjIiwic2NyaXB0cyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwibGVuZ3RoIiwiaSIsIkVycm9yIiwicmVwbGFjZSIsInAiLCJiIiwic2VsZiIsImlzTmlsIiwieCIsImluc2VydFNtYWxsZXIiLCJkaXN0YW5jZXNBciIsImluZGV4ZXMiLCJudW0iLCJpbmRleCIsIm5ld1Bvc2l0aW9uIiwiZmluZEluZGV4IiwidiIsInBvcCIsInNwbGljZSIsIlNwYXJzZU1hdHJpeFNlcnZpY2UiLCJjb25zdHJ1Y3RvciIsIl93b3JrZXJDb3VudCIsIk1hdGgiLCJtYXgiLCJuYXZpZ2F0b3IiLCJoYXJkd2FyZUNvbmN1cnJlbmN5IiwiY2FsY011bHRpQ29sdW1uIiwidmFsdWVzIiwiZm5OYW1lcyIsInRocmVzaG9sZCIsIm9wdHMiLCJ3ZWlnaHRzIiwiYWdncmVnYXRpb25NZXRob2QiLCJFVUNMSURFQU4iLCJtYXRTaXplIiwiY2h1bmtTaXplIiwiZmxvb3IiLCJtaW5UaHJlc2hvbGQiLCJnZXRNaW5pbWFsVGhyZXNob2xkIiwiY29uc29sZSIsImxvZyIsImZvckVhY2giLCJfIiwicHJvbWlzZXMiLCJBcnJheSIsIndvcmtlcnMiLCJmaWxsIiwibWFwIiwiV29ya2VyIiwiVVJMIiwiaWR4IiwiUHJvbWlzZSIsInJlc29sdmVXb3JrZXIiLCJyZWplY3RXb3JrZXIiLCJzdGFydElkeCIsImVuZElkeCIsIkludDMyQXJyYXkiLCJqIiwiZGlzdGFuY2UiLCJGbG9hdDMyQXJyYXkiLCJwb3N0TWVzc2FnZSIsIm9ubWVzc2FnZSIsImRhdGEiLCJlcnJvciIsInRlcm1pbmF0ZSIsInJlc3VsdHMiLCJhbGwiLCJmdWxsU2l6ZSIsInJlZHVjZSIsImFjYyIsInZhbCIsIm9mZnNldCIsInJlcyIsInNldCIsImNhbGMiLCJmbk5hbWUiLCJnZXRLTk4iLCJuTmVpZ2hib3VycyIsIm11bHRpQ29sdW1uS05OIiwiZ2V0VGhyZXNob2xkS05OIiwibXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4iLCJzb21lIiwia25uRGlzdGFuY2VzIiwia25uSW5kZXhlcyIsImtublNpemVzIiwia25uUmVzIiwiZ2V0U2FtcGxlRGlzdGFuY2VzIiwidGhyZXNob2xkV29ya2VycyIsIm1heFNhbXBsZVNpemUiLCJzYW1wbGVTaXNlIiwibWluIiwidGVzdFNldFNpemVQZXJXb3JrZXIiLCJ0UHJvbWlzZXMiLCJzYW1wbGVMZW5ndGgiLCJzb3J0IiwidyIsImNhbGNTeW5jIiwiZGlzdGFuY2VGbiIsImRpc3RhbmNlcyIsImNudCIsIm1pIiwibWoiLCJ2YWx1ZSIsInB1c2giLCJhc3luYyIsImJpb0xheW91dCIsImNsdXN0ZXIiLCJzcGFyc2VPYmplY3QiLCJuIiwiaXMiLCJqcyIsImEiLCJlbWJlZFgiLCJyYW5kb20iLCJlbWJlZFkiLCJ4VmVsb2NpdGllcyIsInlWZWxvY2l0aWVzIiwidGVtcGVyYXR1cmUiLCJkeCIsImR5IiwiYWJzIiwidmVjU2l6ZSIsInNxcnQiLCJtaW5YIiwibWluWSIsIm1heFgiLCJtYXhZIiwicmFuZ2VYIiwicmFuZ2VZIiwiZ2V0TGF5b3V0RW1iZWRkaW5ncyIsImRlZmF1bHRNQ0xPcHRpb25zIiwiZXhwYW5kRmFjdG9yIiwibWF4SXRlcmF0aW9ucyIsImluZmxhdGVGYWN0b3IiLCJtdWx0RmFjdG9yIiwiTUNMU3BhcnNlUmVkdWNlciIsIl9vcHRpb25zIiwidHJhbnNmb3JtIiwic3BhcnNlTWF0cml4IiwiblJvd3MiLCJ0b09iamVjdEZvcm0iLCJhZGRMb29wcyIsIm5vcm1hbGl6ZSIsImV4cGFuZCIsImluZmxhdGUiLCJjbHVzdGVycyIsImFzc2lnbkNsdXN0ZXJzIiwiY29ycmVjdENsdXN0ZXJzIiwiZW1iZWRkaW5ncyIsImxheW91dCIsImNsdXN0ZXJTaXplTWFwIiwic29ydGVkSW5kZXhlcyIsImtleXMiLCJOdW1iZXIiLCJjbHVzdGVyTWFwIiwiY2x1c3RlcklkeCIsImNsdXN0ZXJOdW0iLCJzb3J0ZWRDbHVzdGVyTmFtZXMiLCJwZXJSb3ciLCJ5T2Zmc2V0IiwiY2x1c3Rlck5hbWUiLCJjZWlsIiwib2Zmc2V0WCIsIm1lcmdlQ2x1c3RlcnMiLCJpQ2x1c3RlciIsImpDbHVzdGVyIiwiayIsIm9yZGVyIiwibG9nMTAiLCJtaW5PcmRlciIsInBvdyIsInJvdW5kIiwicm93Iiwic3VtIiwiZXhwYW5kZWRPYmplY3QiLCJnZXRFeHBhbmRWYWx1ZSIsImN1cnJlbnRJbmRleGVzIiwib3RoZXJJbmRleGVzIiwiaW5jbHVkZXMiLCJldmVudCIsImRpc3RhbmNlRm5BcmdzIiwiZGlzdGFuY2VGbnMiLCJzcGFyc2UiXSwic291cmNlUm9vdCI6IiJ9
|
|
1
|
+
var peptides;(()=>{"use strict";var t,e,n={m:{},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+"",(e=t||(t={})).EUCLIDEAN="EUCLIDEAN",e.MANHATTAN="MANHATTAN";const r=t=>null==t;function s(t,e,n,r){if(n>t[t.length-1])return;const s=t.findIndex((t=>n<t));t.pop(),t.splice(s,0,n),e.pop(),e.splice(s,0,r)}class o{constructor(){this._workerCount=Math.max(navigator.hardwareConcurrency-2,1)}async calcMultiColumn(e,r,s,o=[{}],a=[1],l=t.EUCLIDEAN){const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=e[0].length>2e4?await this.getMinimalThreshold(e,r,o,a,l):0;s<c&&(console.log(`using threshold ${c}`),s=c),o.forEach(((t,e)=>o[e].threshold=s));const u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(23),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,c)=>{const u=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=u&&n({i:new Int32Array(0),j:new Int32Array(0),distance:new Float32Array(0),idx:t}),g[t].postMessage({values:e,startIdx:u,endIdx:f,threshold:s,fnNames:r,opts:o,weights:a,aggregationMethod:l}),g[t].onmessage=({data:{error:e,i:r,j:s,distance:o}})=>{e?(g[t].terminate(),c(e)):(g[t].terminate(),n({i:r,j:s,distance:o,idx:t}))}}));const f=await Promise.all(u),m=f.reduce(((t,e)=>t+e.i.length),0),w=new Int32Array(m),d=new Int32Array(m),y=new Float32Array(m);let p=0;for(const t of f)w.set(t.i,p),d.set(t.j,p),y.set(t.distance,p),p+=t.i.length;return{i:w,j:d,distance:y}}async calc(t,e,n,r={}){return await this.calcMultiColumn([t],[e],n,[r],[1])}async getKNN(t,e,n=15,r={}){return await this.multiColumnKNN([t],[e],n,[r],[1])}async getThresholdKNN(t,e,n=.8,r={}){return await this.multiColumnThresholdKnn([t],[e],n,[r],[1])}async multiColumnThresholdKnn(e,r,s=.8,o,a,l=t.EUCLIDEAN){if(e.length!==r.length||e.length!==o.length||e.length!==a.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=new Array(this._workerCount),u=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(427),n.b))));for(let t=0;t<this._workerCount;t++)c[t]=new Promise(((n,c)=>{const g=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=g&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),u[t].postMessage({values:e,startIdx:g,endIdx:f,fnNames:r,opts:o,threshold:s,weights:a,aggregationMethod:l}),u[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:s}})=>{e?(u[t].terminate(),c(e)):(u[t].terminate(),n({knnDistances:r,knnIndexes:s}))}}));const g=await Promise.all(c),f=new Int32Array(e[0].length);for(const t of g)for(let n=0;n<e[0].length;++n)f[n]+=t.knnIndexes[n]?.length??0;const m={knnDistances:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e]))),knnIndexes:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e])))};for(const t of g)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)m.knnDistances[n][f[n]-1]=t.knnDistances[n][e],m.knnIndexes[n][f[n]-1]=t.knnIndexes[n][e],f[n]-=1;return m}async multiColumnKNN(e,r,o=15,a,l,i=t.EUCLIDEAN){if(e.length!==r.length||e.length!==a.length||e.length!==l.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const h=e[0].length*(e[0].length-1)/2,c=Math.floor(h/this._workerCount),u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(282),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,s)=>{const u=t*c,f=t===this._workerCount-1?h:(t+1)*c;f<=u&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),g[t].postMessage({values:e,startIdx:u,endIdx:f,fnNames:r,opts:a,nNeighbours:o,weights:l,aggregationMethod:i}),g[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:o}})=>{e?(g[t].terminate(),s(e)):(g[t].terminate(),n({knnDistances:r,knnIndexes:o}))}}));const f=await Promise.all(u),m={knnDistances:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(99999))),knnIndexes:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(-1)))};for(const t of f)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)s(m.knnDistances[n],m.knnIndexes[n],t.knnDistances[n][e],t.knnIndexes[n][e]);return m}async getSampleDistances(e,r,s=[],o,a=t.EUCLIDEAN){const l=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(40),n.b))));try{const t=e[0].length*(e[0].length-1)/2,n=Math.floor(t/this._workerCount),i=1e6,h=Math.max(Math.min(t/1e3,i),Math.min(t,i)),c=Math.floor(h/this._workerCount),u=new Array(this._workerCount);for(let i=0;i<this._workerCount;i++)u[i]=new Promise(((h,u)=>{const g=i*n,f=i===this._workerCount-1?t:(i+1)*n;l[i].postMessage({values:e,startIdx:g,endIdx:f,sampleLength:c,fnNames:r,opts:s,weights:o,aggregationMethod:a}),l[i].onmessage=({data:{error:t,distance:e}})=>{l[i].terminate(),t?u(t):h({distance:e})}}));const g=await Promise.all(u),f=g.reduce(((t,e)=>t+e.distance.length),0),m=new Float32Array(f);let w=0;for(const t of g)m.set(t.distance,w),w+=t.distance.length;return m.sort(),m}catch(t){return l?.forEach((t=>t?.terminate())),console.error(t),new Float32Array(1).fill(.5)}}async getMinimalThreshold(e,n,r=[],s,o=t.EUCLIDEAN){try{const t=e.length*(e.length-1)/2,a=await this.getSampleDistances(e,n,r,s,o);return 1-a[Math.floor(7e7/t*a.length)]}catch(t){return console.error(t),.5}}static calcSync(t,e,n,s){const o=[],a=[],l=[];let i=0,h=0,c=0;const u=t.length*(t.length-1)/2;for(;i<u;){const e=r(t[h])||r(t[c])?1:n(t[h],t[c]);1-e>=s&&(o.push(h),a.push(c),l.push(e)),i++,c++,c===t.length&&(h++,c=h+1)}return{i:new Int32Array(o),j:new Int32Array(a),distance:new Float32Array(l)}}}async function a(t,e,n){const r=t.length,s=[],o=[];for(let a=0;a<r;a++)for(let l=a+1;l<r;l++){const r=t[a],i=t[l];e[r]?.[i]>=n&&(s.push(a),o.push(l))}return function(t,e,n){const r=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),o=new Float32Array(n.length).fill(0),a=new Float32Array(n.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;o.fill(0),a.fill(0);for(let n=0;n<t.length;n++){const l=t[n],h=e[n],c=r[l]-r[h],u=s[l]-s[h];Math.abs(c)>=1&&(o[l]-=i*c,o[h]+=i*c),Math.abs(u)>=1&&(a[l]-=i*u,a[h]+=i*u)}for(let t=0;t<n.length;t++){const e=Math.sqrt(o[t]*o[t]+a[t]*a[t]);e>0&&(r[t]+=o[t]/e*i,s[t]+=a[t]/e*i)}}let l=r[0],i=s[0],h=r[0],c=s[0];for(let t=1;t<n.length;t++)l=Math.min(l,r[t]),i=Math.min(i,s[t]),h=Math.max(h,r[t]),c=Math.max(c,s[t]);let u=h-l,g=c-i;0===u&&(u=h);for(let t=0;t<n.length;t++)r[t]=(r[t]-l)/u/2+.5;0===g&&(g=c);for(let t=0;t<n.length;t++)s[t]=(s[t]-i)/g/2+.5;return{embedX:r,embedY:s}}(s,o,t)}const l={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class i{constructor(t={}){this._options={...l,...t}}async transform(t,e){let n=this.toObjectForm(t);if(this._options.maxIterations>0){this.addLoops(n,e),this.normalize(n);for(let t=0;t<this._options.maxIterations;t++)n=this.expand(n,e),this.inflate(n),this.normalize(n)}const{clusters:r,is:s,js:o}=this.assignClusters(n,e);this.correctClusters(r);const a=await this.layout(r,n,e);return{clusters:r,embedX:a.embedX,embedY:a.embedY,is:s,js:o}}correctClusters(t){const e={};for(const n of t)e[n]||(e[n]=0),e[n]++;const n=Object.keys(e).map(Number).sort(((t,n)=>e[t]-e[n])),r={};n.forEach(((t,e)=>r[t]=e+1));for(let e=0;e<t.length;e++)t[e]=r[t[e]]}async layout(t,e,n){const r=new Float32Array(n).fill(0),s=new Float32Array(n).fill(0),o={};t.forEach(((t,e)=>{o[t]||(o[t]=[]),o[t].push(e)}));let l=0;const i=Object.keys(o);i.sort(((t,e)=>o[e].length-o[t].length));let h=6,c=0;for(const t of i){const n=o[t],i=await a(n,e,.001);l===Math.ceil(h/1.5)&&(l=0,c+=5/h,h=Math.ceil(1.5*h));const u=l%h*5/h*1.5;for(let t=0;t<i.embedX.length;t++)r[n[t]]=5*i.embedX[t]/h+u,s[n[t]]=5*i.embedY[t]/h+c;l++}return{embedX:r,embedY:s}}mergeClusters(t,e,n){const r=t[e],s=t[n];for(let e=0;e<t.length;e++)t[e]===s&&(t[e]=r)}assignClusters(t,e){let n=0;const r=[],s=[],o=Math.floor(Math.max(Math.log10(e),2))+1,a=Math.pow(10,o),l=new Array(e).fill(-1);for(const e of Object.keys(t))for(const o of Object.keys(t[e]))Math.round(t[e][o]*a)/a>0&&t[e][o]!==Number(e)&&Number(o)>Number(e)&&(r.push(Number(e)),s.push(Number(o)),-1!==l[Number(e)]&&-1!==l[Number(o)]?l[Number(e)]!==l[Number(o)]&&this.mergeClusters(l,Number(e),Number(o)):-1!==l[Number(e)]?l[Number(o)]=l[Number(e)]:-1!==l[Number(o)]?l[Number(e)]=l[Number(o)]:(n++,l[Number(e)]=n,l[Number(o)]=n));for(let t=0;t<l.length;t++)-1===l[t]&&(n++,l[t]=n);return{clusters:l,is:new Uint32Array(r),js:new Uint32Array(s)}}toObjectForm(t){const e={};for(let n=0;n<t.i.length;n++)e[t.i[n]]||(e[t.i[n]]={}),e[t.i[n]][t.j[n]]=1-t.distance[n],e[t.j[n]]||(e[t.j[n]]={}),e[t.j[n]][t.i[n]]=1-t.distance[n];return e}addLoops(t,e){for(let n=0;n<e;n++)t[n]||(t[n]={}),t[n][n]=this._options.multFactor}normalize(t){for(const e of Object.keys(t)){const n=t[e];let r=0;for(const t of Object.keys(n))r+=n[t];if(0!==r)for(const s of Object.keys(n))t[e][s]/=r}}expand(t,e){const n={},r=Math.floor(Math.max(Math.log10(e),2))+1,s=Math.pow(10,r);for(let r=0;r<e;r++)if(t[r]){n[r]={};for(let o=r;o<e;o++){if(!t[r]?.[o])continue;const e=this.getExpandValue(t,r,o);Math.round(e*s)/s>0&&(n[r][o]=e,n[o]||(n[o]={}),n[o][r]=e)}}return n}inflate(t){for(const e of Object.keys(t)){const n=t[e];for(const r of Object.keys(n))t[e][r]=Math.pow(t[e][r],this._options.inflateFactor)}}getExpandValue(t,e,n){let r=0;const s=Object.keys(t[e]??{}),o=Object.keys(t[n]??{});for(const a of s)o.includes(a)&&(r+=t[e][a]*t[n][a]);return r}}onmessage=async t=>{const{data:e,threshold:n,weights:r,aggregationMethod:s,distanceFnArgs:a,distanceFns:l,maxIterations:h}=t.data,c=await(new o).calcMultiColumn(e,l,n/100,a,r,s),u=await new i({maxIterations:h??5}).transform(c,e[0].length);postMessage({res:u})},peptides={}})();
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTk3LmpzIiwibWFwcGluZ3MiOiJvQ0FBVyxFQUNBQSxFQ0FQQyxFQUFzQixDQUcxQkEsRSxHQ0hBQSxFQUF5QkMsR0FFWkEsRUFBVSxPQ0h2QkQsRUFBb0JFLEVBQUksV0FDdkIsR0FBMEIsaUJBQWZDLFdBQXlCLE9BQU9BLFdBQzNDLElBQ0MsT0FBT0MsTUFBUSxJQUFJQyxTQUFTLGNBQWIsRUFDaEIsQ0FBRSxNQUFPQyxHQUNSLEdBQXNCLGlCQUFYQyxPQUFxQixPQUFPQSxNQUN4QyxDQUNBLENBUHVCLEdDQXhCUCxFQUFvQlEsRUFBSSxDQUFDQyxFQUFLQyxJQUFVQyxPQUFPQyxVQUFVQyxlQUFlQyxLQUFLTCxFQUFLQyxHLE1DQWxGLElBQUlLLEVBQ0FmLEVBQW9CRSxFQUFFYyxnQkFBZUQsRUFBWWYsRUFBb0JFLEVBQUVlLFNBQVcsSUFDdEYsSUFBSUMsRUFBV2xCLEVBQW9CRSxFQUFFZ0IsU0FDckMsSUFBS0gsR0FBYUcsSUFDYkEsRUFBU0MsZ0JBQ1pKLEVBQVlHLEVBQVNDLGNBQWNDLE1BQy9CTCxHQUFXLENBQ2YsSUFBSU0sRUFBVUgsRUFBU0kscUJBQXFCLFVBQzVDLEdBQUdELEVBQVFFLE9BRVYsSUFEQSxJQUFJQyxFQUFJSCxFQUFRRSxPQUFTLEVBQ2xCQyxHQUFLLElBQU1ULEdBQVdBLEVBQVlNLEVBQVFHLEtBQUtKLEdBRXhELENBSUQsSUFBS0wsRUFBVyxNQUFNLElBQUlVLE1BQU0seURBQ2hDVixFQUFZQSxFQUFVVyxRQUFRLE9BQVEsSUFBSUEsUUFBUSxRQUFTLElBQUlBLFFBQVEsWUFBYSxLQUNwRjFCLEVBQW9CMkIsRUFBSVosQyxLQ2xCeEJmLEVBQW9CNEIsRUFBSUMsS0FBS1osU0FBVyxJTkM3QmxCLEVBR1IsSUFBK0IsRUFBNkIsQ0FBQyxJQUZ0QixVQUFJLFlBQzFDQSxFQUFzQyxVQUFJLFlPRnZDLE1BQU0rQixFQUFTQyxHQUFNQSxRQUNyQixTQUFTQyxFQUFjQyxFQUFhQyxFQUFTQyxFQUFLQyxHQUNyRCxHQUFJRCxFQUFNRixFQUFZQSxFQUFZVixPQUFTLEdBQ3ZDLE9BQ0osTUFBTWMsRUFBY0osRUFBWUssV0FBV0MsR0FBTUosRUFBTUksSUFDdkROLEVBQVlPLE1BQ1pQLEVBQVlRLE9BQU9KLEVBQWEsRUFBR0YsR0FDbkNELEVBQVFNLE1BQ1JOLEVBQVFPLE9BQU9KLEVBQWEsRUFBR0QsRUFDbkMsQ0NSTyxNQUFNTSxFQUNULFdBQUFDLEdBQ0l2QyxLQUFLd0MsYUFBZUMsS0FBS0MsSUFBSUMsVUFBVUMsb0JBQXNCLEVBQUcsRUFDcEUsQ0FDQSxxQkFBTUMsQ0FBZ0JDLEVBQVFDLEVBQVNDLEVBQVdDLEVBQU8sQ0FBQyxDQUFDLEdBQUlDLEVBQVUsQ0FBQyxHQUFJQyxFQUFvQixFQUEyQkMsV0FDekgsTUFBTUMsRUFBVVAsRUFBTyxHQUFHM0IsUUFBVTJCLEVBQU8sR0FBRzNCLE9BQVMsR0FBSyxFQUN0RG1DLEVBQVliLEtBQUtjLE1BQU1GLEVBQVVyRCxLQUFLd0MsY0FDdENnQixFQUFlVixFQUFPLEdBQUczQixPQUFTLFVBQzlCbkIsS0FBS3lELG9CQUFvQlgsRUFBUUMsRUFBU0UsRUFBTUMsRUFBU0MsR0FBcUIsRUFDcEZILEVBQVlRLElBQ1pFLFFBQVFDLElBQUksbUJBQW1CSCxLQUMvQlIsRUFBWVEsR0FFaEJQLEVBQUtXLFNBQVEsQ0FBQ0MsRUFBR3pDLElBQU02QixFQUFLN0IsR0FBYyxVQUFJNEIsSUFDOUMsTUFBTWMsRUFBVyxJQUFJQyxNQUFNL0QsS0FBS3dDLGNBQzFCd0IsRUFBVSxJQUFJRCxNQUFNL0QsS0FBS3dDLGNBQzFCeUIsS0FBSyxNQUFNQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLG9CQUM3QyxJQUFLLElBQUlDLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt3QyxhQUFjNkIsSUFDdkNQLEVBQVNPLEdBQU8sSUFBSUMsU0FBUSxDQUFDQyxFQUFlQyxLQUN4QyxNQUFNQyxFQUFXSixFQUFNZixFQUNqQm9CLEVBQVNMLElBQVFyRSxLQUFLd0MsYUFBZSxFQUFJYSxHQUFXZ0IsRUFBTSxHQUFLZixFQUNqRW9CLEdBQVVELEdBQ1ZGLEVBQWMsQ0FBRW5ELEVBQUcsSUFBSXVELFdBQVcsR0FBSUMsRUFBRyxJQUFJRCxXQUFXLEdBQUlFLFNBQVUsSUFBSUMsYUFBYSxHQUFJVCxRQUMvRkwsRUFBUUssR0FBS1UsWUFBWSxDQUFFakMsU0FBUTJCLFdBQVVDLFNBQVExQixZQUFXRCxVQUFTRSxPQUFNQyxVQUFTQyxzQkFDeEZhLEVBQVFLLEdBQUtXLFVBQVksRUFBR0MsTUFBUUMsUUFBTzlELElBQUd3RCxJQUFHQyxnQkFDekNLLEdBQ0FsQixFQUFRSyxHQUFLYyxZQUNiWCxFQUFhVSxLQUdibEIsRUFBUUssR0FBS2MsWUFDYlosRUFBYyxDQUFFbkQsSUFBR3dELElBQUdDLFdBQVVSLFFBQ3BDLENBQ0gsSUFHVCxNQUFNZSxRQUFnQmQsUUFBUWUsSUFBSXZCLEdBQzVCd0IsRUFBV0YsRUFBUUcsUUFBTyxDQUFDQyxFQUFLQyxJQUFRRCxFQUFNQyxFQUFJckUsRUFBRUQsUUFBUSxHQUM1REMsRUFBSSxJQUFJdUQsV0FBV1csR0FDbkJWLEVBQUksSUFBSUQsV0FBV1csR0FDbkJULEVBQVcsSUFBSUMsYUFBYVEsR0FDbEMsSUFBSUksRUFBUyxFQUViLElBQUssTUFBTUMsS0FBT1AsRUFDZGhFLEVBQUV3RSxJQUFJRCxFQUFJdkUsRUFBR3NFLEdBQ2JkLEVBQUVnQixJQUFJRCxFQUFJZixFQUFHYyxHQUNiYixFQUFTZSxJQUFJRCxFQUFJZCxTQUFVYSxHQUMzQkEsR0FBVUMsRUFBSXZFLEVBQUVELE9BRXBCLE1BQU8sQ0FBRUMsSUFBR3dELElBQUdDLFdBQ25CLENBQ0EsVUFBTWdCLENBQUsvQyxFQUFRZ0QsRUFBUTlDLEVBQVdDLEVBQU8sQ0FBQyxHQUUxQyxhQUFhakQsS0FBSzZDLGdCQUFnQixDQUFDQyxHQUFTLENBQUNnRCxHQUFTOUMsRUFBVyxDQUFDQyxHQUFPLENBQUMsR0FDOUUsQ0FDQSxZQUFNOEMsQ0FBT2pELEVBQVFnRCxFQUFRRSxFQUFjLEdBQUkvQyxFQUFPLENBQUMsR0FDbkQsYUFBYWpELEtBQUtpRyxlQUFlLENBQUNuRCxHQUFTLENBQUNnRCxHQUFTRSxFQUFhLENBQUMvQyxHQUFPLENBQUMsR0FDL0UsQ0FDQSxxQkFBTWlELENBQWdCcEQsRUFBUWdELEVBQVE5QyxFQUFZLEdBQUtDLEVBQU8sQ0FBQyxHQUMzRCxhQUFhakQsS0FBS21HLHdCQUF3QixDQUFDckQsR0FBUyxDQUFDZ0QsR0FBUzlDLEVBQVcsQ0FBQ0MsR0FBTyxDQUFDLEdBQ3RGLENBQ0EsNkJBQU1rRCxDQUF3QnJELEVBQVFDLEVBQVNDLEVBQVksR0FBS0MsRUFBTUMsRUFBU0MsRUFBb0IsRUFBMkJDLFdBQzFILEdBQUlOLEVBQU8zQixTQUFXNEIsRUFBUTVCLFFBQVUyQixFQUFPM0IsU0FBVzhCLEVBQUs5QixRQUFVMkIsRUFBTzNCLFNBQVcrQixFQUFRL0IsT0FDL0YsTUFBTSxJQUFJRSxNQUFNLHNGQUNwQixHQUFJeUIsRUFBT3NELE1BQU1qRSxHQUFNQSxFQUFFaEIsU0FBVzJCLEVBQU8sR0FBRzNCLFNBQzFDLE1BQU0sSUFBSUUsTUFBTSxpREFDcEIsTUFBTWdDLEVBQVVQLEVBQU8sR0FBRzNCLFFBQVUyQixFQUFPLEdBQUczQixPQUFTLEdBQUssRUFDdERtQyxFQUFZYixLQUFLYyxNQUFNRixFQUFVckQsS0FBS3dDLGNBQ3RDc0IsRUFBVyxJQUFJQyxNQUFNL0QsS0FBS3dDLGNBQzFCd0IsRUFBVSxJQUFJRCxNQUFNL0QsS0FBS3dDLGNBQzFCeUIsS0FBSyxNQUFNQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLHFCQUM3QyxJQUFLLElBQUlDLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt3QyxhQUFjNkIsSUFDdkNQLEVBQVNPLEdBQU8sSUFBSUMsU0FBUSxDQUFDQyxFQUFlQyxLQUN4QyxNQUFNQyxFQUFXSixFQUFNZixFQUNqQm9CLEVBQVNMLElBQVFyRSxLQUFLd0MsYUFBZSxFQUFJYSxHQUFXZ0IsRUFBTSxHQUFLZixFQUNqRW9CLEdBQVVELEdBQ1ZGLEVBQWMsQ0FBRThCLGFBQWMsSUFBSXRDLE1BQU0sR0FBSXVDLFdBQVksSUFBSXZDLE1BQU0sS0FDdEVDLEVBQVFLLEdBQUtVLFlBQVksQ0FBRWpDLFNBQVEyQixXQUFVQyxTQUFRM0IsVUFBU0UsT0FBTUQsWUFBV0UsVUFBU0Msc0JBQ3hGYSxFQUFRSyxHQUFLVyxVQUFZLEVBQUdDLE1BQVFDLFFBQU9tQixlQUFjQyxrQkFDakRwQixHQUNBbEIsRUFBUUssR0FBS2MsWUFDYlgsRUFBYVUsS0FHYmxCLEVBQVFLLEdBQUtjLFlBQ2JaLEVBQWMsQ0FBRThCLGVBQWNDLGVBQ2xDLENBQ0gsSUFHVCxNQUFNbEIsUUFBZ0JkLFFBQVFlLElBQUl2QixHQUM1QnlDLEVBQVcsSUFBSTVCLFdBQVc3QixFQUFPLEdBQUczQixRQUMxQyxJQUFLLE1BQU13RSxLQUFPUCxFQUNkLElBQUssSUFBSWhFLEVBQUksRUFBR0EsRUFBSTBCLEVBQU8sR0FBRzNCLFNBQVVDLEVBQ3BDbUYsRUFBU25GLElBQU11RSxFQUFJVyxXQUFXbEYsSUFBSUQsUUFBVSxFQUVwRCxNQUFNcUYsRUFBUyxDQUNYSCxhQUFjLElBQUl0QyxNQUFNakIsRUFBTyxHQUFHM0IsUUFBUThDLEtBQUssTUFBTUMsS0FBSSxDQUFDTCxFQUFHekMsSUFBTSxJQUFJMkMsTUFBTXdDLEVBQVNuRixNQUN0RmtGLFdBQVksSUFBSXZDLE1BQU1qQixFQUFPLEdBQUczQixRQUFROEMsS0FBSyxNQUFNQyxLQUFJLENBQUNMLEVBQUd6QyxJQUFNLElBQUkyQyxNQUFNd0MsRUFBU25GLE9BRXhGLElBQUssTUFBTXVFLEtBQU9QLEVBQ2QsSUFBSyxJQUFJaEUsRUFBSSxFQUFHQSxFQUFJMEIsRUFBTyxHQUFHM0IsU0FBVUMsRUFDcEMsSUFBSyxJQUFJd0QsRUFBSSxFQUFHQSxFQUFJZSxFQUFJVSxhQUFhakYsSUFBSUQsU0FBZXlELEVBQ3BENEIsRUFBT0gsYUFBYWpGLEdBQUdtRixFQUFTbkYsR0FBSyxHQUFLdUUsRUFBSVUsYUFBYWpGLEdBQUd3RCxHQUM5RDRCLEVBQU9GLFdBQVdsRixHQUFHbUYsRUFBU25GLEdBQUssR0FBS3VFLEVBQUlXLFdBQVdsRixHQUFHd0QsR0FDMUQyQixFQUFTbkYsSUFBTSxFQUkzQixPQUFPb0YsQ0FDWCxDQUNBLG9CQUFNUCxDQUFlbkQsRUFBUUMsRUFBU2lELEVBQWMsR0FBSS9DLEVBQU1DLEVBQVNDLEVBQW9CLEVBQTJCQyxXQUNsSCxHQUFJTixFQUFPM0IsU0FBVzRCLEVBQVE1QixRQUFVMkIsRUFBTzNCLFNBQVc4QixFQUFLOUIsUUFBVTJCLEVBQU8zQixTQUFXK0IsRUFBUS9CLE9BQy9GLE1BQU0sSUFBSUUsTUFBTSxzRkFDcEIsR0FBSXlCLEVBQU9zRCxNQUFNakUsR0FBTUEsRUFBRWhCLFNBQVcyQixFQUFPLEdBQUczQixTQUMxQyxNQUFNLElBQUlFLE1BQU0saURBQ3BCLE1BQU1nQyxFQUFVUCxFQUFPLEdBQUczQixRQUFVMkIsRUFBTyxHQUFHM0IsT0FBUyxHQUFLLEVBQ3REbUMsRUFBWWIsS0FBS2MsTUFBTUYsRUFBVXJELEtBQUt3QyxjQUN0Q3NCLEVBQVcsSUFBSUMsTUFBTS9ELEtBQUt3QyxjQUMxQndCLEVBQVUsSUFBSUQsTUFBTS9ELEtBQUt3QyxjQUMxQnlCLEtBQUssTUFBTUMsS0FBSSxJQUFNLElBQUlDLE9BQU8sSUFBSUMsSUFBSSxxQkFDN0MsSUFBSyxJQUFJQyxFQUFNLEVBQUdBLEVBQU1yRSxLQUFLd0MsYUFBYzZCLElBQ3ZDUCxFQUFTTyxHQUFPLElBQUlDLFNBQVEsQ0FBQ0MsRUFBZUMsS0FDeEMsTUFBTUMsRUFBV0osRUFBTWYsRUFDakJvQixFQUFTTCxJQUFRckUsS0FBS3dDLGFBQWUsRUFBSWEsR0FBV2dCLEVBQU0sR0FBS2YsRUFDakVvQixHQUFVRCxHQUNWRixFQUFjLENBQUU4QixhQUFjLElBQUl0QyxNQUFNLEdBQUl1QyxXQUFZLElBQUl2QyxNQUFNLEtBQ3RFQyxFQUFRSyxHQUFLVSxZQUFZLENBQUVqQyxTQUFRMkIsV0FBVUMsU0FBUTNCLFVBQVNFLE9BQU0rQyxjQUFhOUMsVUFBU0Msc0JBQzFGYSxFQUFRSyxHQUFLVyxVQUFZLEVBQUdDLE1BQVFDLFFBQU9tQixlQUFjQyxrQkFDakRwQixHQUNBbEIsRUFBUUssR0FBS2MsWUFDYlgsRUFBYVUsS0FHYmxCLEVBQVFLLEdBQUtjLFlBQ2JaLEVBQWMsQ0FBRThCLGVBQWNDLGVBQ2xDLENBQ0gsSUFHVCxNQUFNbEIsUUFBZ0JkLFFBQVFlLElBQUl2QixHQUM1QjBDLEVBQVMsQ0FDWEgsYUFBYyxJQUFJdEMsTUFBTWpCLEVBQU8sR0FBRzNCLFFBQVE4QyxLQUFLLE1BQU1DLEtBQUksSUFBTSxJQUFJSCxNQUFNaUMsR0FBYS9CLEtBQUssU0FDM0ZxQyxXQUFZLElBQUl2QyxNQUFNakIsRUFBTyxHQUFHM0IsUUFBUThDLEtBQUssTUFBTUMsS0FBSSxJQUFNLElBQUlILE1BQU1pQyxHQUFhL0IsTUFBTSxNQUU5RixJQUFLLE1BQU0wQixLQUFPUCxFQUNkLElBQUssSUFBSWhFLEVBQUksRUFBR0EsRUFBSTBCLEVBQU8sR0FBRzNCLFNBQVVDLEVBQ3BDLElBQUssSUFBSXdELEVBQUksRUFBR0EsRUFBSWUsRUFBSVUsYUFBYWpGLElBQUlELFNBQWV5RCxFQUNwRGhELEVBQWM0RSxFQUFPSCxhQUFhakYsR0FBSW9GLEVBQU9GLFdBQVdsRixHQUFJdUUsRUFBSVUsYUFBYWpGLEdBQUd3RCxHQUFJZSxFQUFJVyxXQUFXbEYsR0FBR3dELElBR2xILE9BQU80QixDQUNYLENBQ0Esd0JBQU1DLENBQW1CM0QsRUFBUUMsRUFBU0UsRUFBTyxHQUFJQyxFQUFTQyxFQUFvQixFQUEyQkMsV0FDekcsTUFBTXNELEVBQW1CLElBQUkzQyxNQUFNL0QsS0FBS3dDLGNBQWN5QixLQUFLLE1BQ3REQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLG9CQUNsQyxJQUNJLE1BQU1mLEVBQVVQLEVBQU8sR0FBRzNCLFFBQVUyQixFQUFPLEdBQUczQixPQUFTLEdBQUssRUFDdERtQyxFQUFZYixLQUFLYyxNQUFNRixFQUFVckQsS0FBS3dDLGNBQ3RDbUUsRUFBZ0IsSUFDaEJDLEVBQWFuRSxLQUFLQyxJQUFJRCxLQUFLb0UsSUFBSXhELEVBQVUsSUFBTXNELEdBQWdCbEUsS0FBS29FLElBQUl4RCxFQUFTc0QsSUFDakZHLEVBQXVCckUsS0FBS2MsTUFBTXFELEVBQWE1RyxLQUFLd0MsY0FDcER1RSxFQUFZLElBQUloRCxNQUFNL0QsS0FBS3dDLGNBQ2pDLElBQUssSUFBSTZCLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt3QyxhQUFjNkIsSUFDdkMwQyxFQUFVMUMsR0FBTyxJQUFJQyxTQUFRLENBQUNDLEVBQWVDLEtBQ3pDLE1BQU1DLEVBQVdKLEVBQU1mLEVBQ2pCb0IsRUFBU0wsSUFBUXJFLEtBQUt3QyxhQUFlLEVBQUlhLEdBQVdnQixFQUFNLEdBQUtmLEVBQ3JFb0QsRUFBaUJyQyxHQUFLVSxZQUFZLENBQzlCakMsT0FBUUEsRUFBUTJCLFdBQVVDLFNBQVFzQyxhQUFjRixFQUNoRC9ELFVBQVNFLE9BQU1DLFVBQVNDLHNCQUU1QnVELEVBQWlCckMsR0FBS1csVUFBWSxFQUFHQyxNQUFRQyxRQUFPTCxnQkFDaEQ2QixFQUFpQnJDLEdBQUtjLFlBQ2xCRCxFQUNBVixFQUFhVSxHQUViWCxFQUFjLENBQUVNLFlBQVcsQ0FDbEMsSUFHVCxNQUFNTyxRQUFnQmQsUUFBUWUsSUFBSTBCLEdBQzVCekIsRUFBV0YsRUFBUUcsUUFBTyxDQUFDQyxFQUFLQyxJQUFRRCxFQUFNQyxFQUFJWixTQUFTMUQsUUFBUSxHQUNuRTBELEVBQVcsSUFBSUMsYUFBYVEsR0FDbEMsSUFBSUksRUFBUyxFQUNiLElBQUssTUFBTUMsS0FBT1AsRUFDZFAsRUFBU2UsSUFBSUQsRUFBSWQsU0FBVWEsR0FDM0JBLEdBQVVDLEVBQUlkLFNBQVMxRCxPQUczQixPQURBMEQsRUFBU29DLE9BQ0ZwQyxDQUNYLENBQ0EsTUFBTzNFLEdBR0gsT0FGQXdHLEdBQWtCOUMsU0FBU3NELEdBQU1BLEdBQUcvQixjQUNwQ3pCLFFBQVF3QixNQUFNaEYsR0FDUCxJQUFJNEUsYUFBYSxHQUFHYixLQUFLLEdBQ3BDLENBQ0osQ0FDQSx5QkFBTVIsQ0FBb0JYLEVBQVFDLEVBQVNFLEVBQU8sR0FBSUMsRUFBU0MsRUFBb0IsRUFBMkJDLFdBSzFHLElBQ0ksTUFBTUMsRUFBVVAsRUFBTzNCLFFBQVUyQixFQUFPM0IsT0FBUyxHQUFLLEVBQ2hEMEQsUUFBaUI3RSxLQUFLeUcsbUJBQW1CM0QsRUFBUUMsRUFBU0UsRUFBTUMsRUFBU0MsR0FJL0UsT0FGa0IsRUFBSTBCLEVBREFwQyxLQUFLYyxNQUpILElBSStCRixFQUFVd0IsRUFBUzFELFFBSTlFLENBQ0EsTUFBT2pCLEdBRUgsT0FEQXdELFFBQVF3QixNQUFNaEYsR0FDUCxFQUNYLENBQ0osQ0FDQSxlQUFPaUgsQ0FBU3JFLEVBQVFnRCxFQUFRc0IsRUFBWXBFLEdBQ3hDLE1BQU01QixFQUFJLEdBQ0p3RCxFQUFJLEdBQ0p5QyxFQUFZLEdBQ2xCLElBQUlDLEVBQU0sRUFDTkMsRUFBSyxFQUNMQyxFQUFLLEVBQ1QsTUFBTWxDLEVBQVd4QyxFQUFPM0IsUUFBVTJCLEVBQU8zQixPQUFTLEdBQUssRUFDdkQsS0FBT21HLEVBQU1oQyxHQUFVLENBRW5CLE1BQU1tQyxFQUFTL0YsRUFBTW9CLEVBQU95RSxLQUFTN0YsRUFBTW9CLEVBQU8wRSxJQUNULEVBQXJDSixFQUFXdEUsRUFBT3lFLEdBQUt6RSxFQUFPMEUsSUFDZixFQUFJQyxHQUNMekUsSUFDZDVCLEVBQUVzRyxLQUFLSCxHQUNQM0MsRUFBRThDLEtBQUtGLEdBQ1BILEVBQVVLLEtBQUtELElBRW5CSCxJQUNBRSxJQUNJQSxJQUFPMUUsRUFBTzNCLFNBQ2RvRyxJQUNBQyxFQUFLRCxFQUFLLEVBRWxCLENBSUEsTUFBTyxDQUFFbkcsRUFITSxJQUFJdUQsV0FBV3ZELEdBR1Z3RCxFQUZMLElBQUlELFdBQVdDLEdBRUNDLFNBRFQsSUFBSUMsYUFBYXVDLEdBRTNDLEVDdFBHTSxlQUFlQyxFQUFVQyxFQUFTQyxFQUFjOUUsR0FDbkQsTUFBTStFLEVBQUlGLEVBQVExRyxPQUNaNkcsRUFBSyxHQUNMQyxFQUFLLEdBQ1gsSUFBSyxJQUFJN0csRUFBSSxFQUFHQSxFQUFJMkcsRUFBRzNHLElBQ25CLElBQUssSUFBSXdELEVBQUl4RCxFQUFJLEVBQUd3RCxFQUFJbUQsRUFBR25ELElBQUssQ0FDNUIsTUFBTXNELEVBQUlMLEVBQVF6RyxHQUNaSSxFQUFJcUcsRUFBUWpELEdBQ2RrRCxFQUFhSSxLQUFLMUcsSUFBTXdCLElBQ3hCZ0YsRUFBR04sS0FBS3RHLEdBQ1I2RyxFQUFHUCxLQUFLOUMsR0FFaEIsQ0FFSixPQUVKLFNBQTZCb0QsRUFBSUMsRUFBSUosR0FDakMsTUFBTU0sRUFBUyxJQUFJckQsYUFBYStDLEVBQVExRyxRQUFROEMsS0FBSyxHQUFHQyxLQUFJLElBQXNCLEdBQWhCekIsS0FBSzJGLFdBQ2pFQyxFQUFTLElBQUl2RCxhQUFhK0MsRUFBUTFHLFFBQVE4QyxLQUFLLEdBQUdDLEtBQUksSUFBc0IsR0FBaEJ6QixLQUFLMkYsV0FFakVFLEVBQWMsSUFBSXhELGFBQWErQyxFQUFRMUcsUUFBUThDLEtBQUssR0FDcERzRSxFQUFjLElBQUl6RCxhQUFhK0MsRUFBUTFHLFFBQVE4QyxLQUFLLEdBQzFELElBQUssSUFBSTdDLEVBQUksRUFBR0EsRUFIRyxJQUdhQSxJQUFLLENBQ2pDLE1BQU1vSCxFQUFlLEVBQUlwSCxFQUpWLElBS2ZrSCxFQUFZckUsS0FBSyxHQUNqQnNFLEVBQVl0RSxLQUFLLEdBQ2pCLElBQUssSUFBSUksRUFBTSxFQUFHQSxFQUFNMkQsRUFBRzdHLE9BQVFrRCxJQUFPLENBQ3RDLE1BQU02RCxFQUFJRixFQUFHM0QsR0FDUDdDLEVBQUl5RyxFQUFHNUQsR0FDUG9FLEVBQUtOLEVBQU9ELEdBQUtDLEVBQU8zRyxHQUN4QmtILEVBQUtMLEVBQU9ILEdBQUtHLEVBQU83RyxHQUsxQmlCLEtBQUtrRyxJQUFJRixJQUFPLElBQ2hCSCxFQUFZSixJQUFNTSxFQUFjQyxFQUNoQ0gsRUFBWTlHLElBQU1nSCxFQUFjQyxHQUVoQ2hHLEtBQUtrRyxJQUFJRCxJQUFPLElBQ2hCSCxFQUFZTCxJQUFNTSxFQUFjRSxFQUNoQ0gsRUFBWS9HLElBQU1nSCxFQUFjRSxFQUl4QyxDQUNBLElBQUssSUFBSXJFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFBTyxDQUMzQyxNQUFNdUUsRUFBVW5HLEtBQUtvRyxLQUFLUCxFQUFZakUsR0FBT2lFLEVBQVlqRSxHQUFPa0UsRUFBWWxFLEdBQU9rRSxFQUFZbEUsSUFDM0Z1RSxFQUFVLElBQ1ZULEVBQU85RCxJQUFRaUUsRUFBWWpFLEdBQU91RSxFQUFVSixFQUM1Q0gsRUFBT2hFLElBQVFrRSxFQUFZbEUsR0FBT3VFLEVBQVVKLEVBRXBELENBQ0osQ0FFQSxJQUFJTSxFQUFPWCxFQUFPLEdBQ2RZLEVBQU9WLEVBQU8sR0FDZFcsRUFBT2IsRUFBTyxHQUNkYyxFQUFPWixFQUFPLEdBQ2xCLElBQUssSUFBSWhFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFDcEN5RSxFQUFPckcsS0FBS29FLElBQUlpQyxFQUFNWCxFQUFPOUQsSUFDN0IwRSxFQUFPdEcsS0FBS29FLElBQUlrQyxFQUFNVixFQUFPaEUsSUFDN0IyRSxFQUFPdkcsS0FBS0MsSUFBSXNHLEVBQU1iLEVBQU85RCxJQUM3QjRFLEVBQU94RyxLQUFLQyxJQUFJdUcsRUFBTVosRUFBT2hFLElBRWpDLElBQUk2RSxFQUFTRixFQUFPRixFQUNoQkssRUFBU0YsRUFBT0YsRUFDTCxJQUFYRyxJQUNBQSxFQUFTRixHQUNiLElBQUssSUFBSTNFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFDcEM4RCxFQUFPOUQsSUFBUThELEVBQU85RCxHQUFPeUUsR0FBUUksRUFBUyxFQUFJLEdBQ3ZDLElBQVhDLElBQ0FBLEVBQVNGLEdBQ2IsSUFBSyxJQUFJNUUsRUFBTSxFQUFHQSxFQUFNd0QsRUFBUTFHLE9BQVFrRCxJQUNwQ2dFLEVBQU9oRSxJQUFRZ0UsRUFBT2hFLEdBQU8wRSxHQUFRSSxFQUFTLEVBQUksR0FDdEQsTUFBTyxDQUFFaEIsU0FBUUUsU0FDckIsQ0E5RFdlLENBQW9CcEIsRUFBSUMsRUFBSUosRUFDdkMsQ0NkTyxNQUFNd0IsRUFBb0IsQ0FDN0JDLGFBQWMsRUFDZEMsY0FBZSxFQUNmQyxjQUFlLEVBQ2ZDLFdBQVksR0FFVCxNQUFNQyxFQUNULFdBQUFuSCxDQUFZVSxFQUFPLENBQUMsR0FDaEJqRCxLQUFLMkosU0FBVyxJQUFLTixLQUFzQnBHLEVBQy9DLENBQ0EsZUFBTTJHLENBQVVDLEVBQWNDLEdBRzFCLElBQUloQyxFQUFlOUgsS0FBSytKLGFBQWFGLEdBQ3JDLEdBQUk3SixLQUFLMkosU0FBU0osY0FBZ0IsRUFBRyxDQUNqQ3ZKLEtBQUtnSyxTQUFTbEMsRUFBY2dDLEdBQzVCOUosS0FBS2lLLFVBQVVuQyxHQUNmLElBQUssSUFBSTFHLEVBQUksRUFBR0EsRUFBSXBCLEtBQUsySixTQUFTSixjQUFlbkksSUFDN0MwRyxFQUFlOUgsS0FBS2tLLE9BQU9wQyxFQUFjZ0MsR0FDekM5SixLQUFLbUssUUFBUXJDLEdBQ2I5SCxLQUFLaUssVUFBVW5DLEVBRXZCLENBQ0EsTUFBTSxTQUFFc0MsRUFBUSxHQUFFcEMsRUFBRSxHQUFFQyxHQUFPakksS0FBS3FLLGVBQWV2QyxFQUFjZ0MsR0FDL0Q5SixLQUFLc0ssZ0JBQWdCRixHQUNyQixNQUFNRyxRQUFtQnZLLEtBQUt3SyxPQUFPSixFQUFVdEMsRUFBY2dDLEdBQzdELE1BQU8sQ0FBRU0sV0FBVWpDLE9BQVFvQyxFQUFXcEMsT0FBUUUsT0FBUWtDLEVBQVdsQyxPQUFRTCxLQUFJQyxLQUNqRixDQUNBLGVBQUFxQyxDQUFnQkYsR0FDWixNQUFNSyxFQUFpQixDQUFDLEVBQ3hCLElBQUssTUFBTTVDLEtBQVd1QyxFQUNiSyxFQUFlNUMsS0FDaEI0QyxFQUFlNUMsR0FBVyxHQUM5QjRDLEVBQWU1QyxLQUVuQixNQUFNNkMsRUFBZ0JuSyxPQUFPb0ssS0FBS0YsR0FBZ0J2RyxJQUFJMEcsUUFBUTNELE1BQUssQ0FBQ2lCLEVBQUcxRyxJQUFNaUosRUFBZXZDLEdBQUt1QyxFQUFlakosS0FDMUdxSixFQUFhLENBQUMsRUFDcEJILEVBQWM5RyxTQUFRLENBQUNrSCxFQUFZMUosSUFBTXlKLEVBQVdDLEdBQWMxSixFQUFJLElBQ3RFLElBQUssSUFBSUEsRUFBSSxFQUFHQSxFQUFJZ0osRUFBU2pKLE9BQVFDLElBQ2pDZ0osRUFBU2hKLEdBQUt5SixFQUFXVCxFQUFTaEosR0FXMUMsQ0FDQSxZQUFNb0osQ0FBT0osRUFBVVAsRUFBY0MsR0FDakMsTUFBTTNCLEVBQVMsSUFBSXJELGFBQWFnRixHQUFPN0YsS0FBSyxHQUN0Q29FLEVBQVMsSUFBSXZELGFBQWFnRixHQUFPN0YsS0FBSyxHQUN0QzRHLEVBQWEsQ0FBQyxFQUNwQlQsRUFBU3hHLFNBQVEsQ0FBQ2lFLEVBQVN6RyxLQUNsQnlKLEVBQVdoRCxLQUNaZ0QsRUFBV2hELEdBQVcsSUFDMUJnRCxFQUFXaEQsR0FBU0gsS0FBS3RHLEVBQUUsSUFJL0IsSUFBSTJKLEVBQWEsRUFDakIsTUFBTUMsRUFBcUJ6SyxPQUFPb0ssS0FBS0UsR0FDdkNHLEVBQW1CL0QsTUFBSyxDQUFDaUIsRUFBRzFHLElBQU1xSixFQUFXckosR0FBR0wsT0FBUzBKLEVBQVczQyxHQUFHL0csU0FDdkUsSUFBSThKLEVBQVMsRUFDVEMsRUFBVSxFQUVkLElBQUssTUFBTUMsS0FBZUgsRUFBb0IsQ0FDMUMsTUFBTW5ELEVBQVVnRCxFQUFXTSxHQUNyQlosUUFBbUIzQyxFQUFVQyxFQUFTZ0MsRUFBYyxNQUN0RGtCLElBQWV0SSxLQUFLMkksS0FBS0gsRUFBUyxPQUNsQ0YsRUFBYSxFQUNiRyxHQU5XLEVBTWFELEVBQ3hCQSxFQUFTeEksS0FBSzJJLEtBQWMsSUFBVEgsSUFFdkIsTUFBTUksRUFBWU4sRUFBYUUsRUFUaEIsRUFTdUNBLEVBQVUsSUFFaEUsSUFBSyxJQUFJN0osRUFBSSxFQUFHQSxFQUFJbUosRUFBV3BDLE9BQU9oSCxPQUFRQyxJQUMxQytHLEVBQU9OLEVBQVF6RyxJQVpKLEVBWVVtSixFQUFXcEMsT0FBTy9HLEdBQWtCNkosRUFBU0ksRUFDbEVoRCxFQUFPUixFQUFRekcsSUFiSixFQWFVbUosRUFBV2xDLE9BQU9qSCxHQUFrQjZKLEVBQVNDLEVBRXRFSCxHQUNKLENBQ0EsTUFBTyxDQUFFNUMsU0FBUUUsU0FDckIsQ0FDQSxhQUFBaUQsQ0FBY2xCLEVBQVVoSixFQUFHd0QsR0FDdkIsTUFBTTJHLEVBQVduQixFQUFTaEosR0FDcEJvSyxFQUFXcEIsRUFBU3hGLEdBQzFCLElBQUssSUFBSTZHLEVBQUksRUFBR0EsRUFBSXJCLEVBQVNqSixPQUFRc0ssSUFDN0JyQixFQUFTcUIsS0FBT0QsSUFDaEJwQixFQUFTcUIsR0FBS0YsRUFFMUIsQ0FDQSxjQUFBbEIsQ0FBZVIsRUFBY0MsR0FDekIsSUFBSWlCLEVBQWEsRUFDakIsTUFBTS9DLEVBQUssR0FDTEMsRUFBSyxHQUNMeUQsRUFBUWpKLEtBQUtjLE1BQU1kLEtBQUtDLElBQUlELEtBQUtrSixNQUFNN0IsR0FBUSxJQUFNLEVBQ3JEOEIsRUFBV25KLEtBQUtvSixJQUFJLEdBQUlILEdBQ3hCdEIsRUFBVyxJQUFJckcsTUFBTStGLEdBQU83RixNQUFNLEdBQ3hDLElBQUssTUFBTTdDLEtBQUtiLE9BQU9vSyxLQUFLZCxHQUN4QixJQUFLLE1BQU1qRixLQUFLckUsT0FBT29LLEtBQUtkLEVBQWF6SSxJQUNqQ3FCLEtBQUtxSixNQUFNakMsRUFBYXpJLEdBQUd3RCxHQUFLZ0gsR0FBWUEsRUFBVyxHQUN2RC9CLEVBQWF6SSxHQUFHd0QsS0FBT2dHLE9BQU94SixJQUFNd0osT0FBT2hHLEdBQUtnRyxPQUFPeEosS0FDdkQ0RyxFQUFHTixLQUFLa0QsT0FBT3hKLElBQ2Y2RyxFQUFHUCxLQUFLa0QsT0FBT2hHLEtBQ2MsSUFBekJ3RixFQUFTUSxPQUFPeEosTUFBdUMsSUFBekJnSixFQUFTUSxPQUFPaEcsSUFDMUN3RixFQUFTUSxPQUFPeEosTUFBUWdKLEVBQVNRLE9BQU9oRyxLQUN4QzVFLEtBQUtzTCxjQUFjbEIsRUFBVVEsT0FBT3hKLEdBQUl3SixPQUFPaEcsS0FFckIsSUFBekJ3RixFQUFTUSxPQUFPeEosSUFDckJnSixFQUFTUSxPQUFPaEcsSUFBTXdGLEVBQVNRLE9BQU94SixLQUVSLElBQXpCZ0osRUFBU1EsT0FBT2hHLElBQ3JCd0YsRUFBU1EsT0FBT3hKLElBQU1nSixFQUFTUSxPQUFPaEcsS0FHdENtRyxJQUNBWCxFQUFTUSxPQUFPeEosSUFBTTJKLEVBQ3RCWCxFQUFTUSxPQUFPaEcsSUFBTW1HLElBS3RDLElBQUssSUFBSTNKLEVBQUksRUFBR0EsRUFBSWdKLEVBQVNqSixPQUFRQyxLQUNaLElBQWpCZ0osRUFBU2hKLEtBQ1QySixJQUNBWCxFQUFTaEosR0FBSzJKLEdBR3RCLE1BQU8sQ0FBRVgsV0FBVXBDLEdBQUksSUFBSStELFlBQVkvRCxHQUFLQyxHQUFJLElBQUk4RCxZQUFZOUQsR0FDcEUsQ0FDQSxZQUFBOEIsQ0FBYUYsR0FDVCxNQUFNL0IsRUFBZSxDQUFDLEVBQ3RCLElBQUssSUFBSTFHLEVBQUksRUFBR0EsRUFBSXlJLEVBQWF6SSxFQUFFRCxPQUFRQyxJQUNsQzBHLEVBQWErQixFQUFhekksRUFBRUEsTUFDN0IwRyxFQUFhK0IsRUFBYXpJLEVBQUVBLElBQU0sQ0FBQyxHQUN2QzBHLEVBQWErQixFQUFhekksRUFBRUEsSUFBSXlJLEVBQWFqRixFQUFFeEQsSUFBTSxFQUFJeUksRUFBYWhGLFNBQVN6RCxHQUMxRTBHLEVBQWErQixFQUFhakYsRUFBRXhELE1BQzdCMEcsRUFBYStCLEVBQWFqRixFQUFFeEQsSUFBTSxDQUFDLEdBQ3ZDMEcsRUFBYStCLEVBQWFqRixFQUFFeEQsSUFBSXlJLEVBQWF6SSxFQUFFQSxJQUFNLEVBQUl5SSxFQUFhaEYsU0FBU3pELEdBRW5GLE9BQU8wRyxDQUNYLENBQ0EsUUFBQWtDLENBQVNsQyxFQUFjZ0MsR0FDbkIsSUFBSyxJQUFJMUksRUFBSSxFQUFHQSxFQUFJMEksRUFBTzFJLElBQ2xCMEcsRUFBYTFHLEtBQ2QwRyxFQUFhMUcsR0FBSyxDQUFDLEdBQ3ZCMEcsRUFBYTFHLEdBQUdBLEdBQUtwQixLQUFLMkosU0FBU0YsVUFFM0MsQ0FDQSxTQUFBUSxDQUFVbkMsR0FDTixJQUFLLE1BQU0xRyxLQUFLYixPQUFPb0ssS0FBSzdDLEdBQWUsQ0FDdkMsTUFBTWtFLEVBQU1sRSxFQUFhMUcsR0FDekIsSUFBSTZLLEVBQU0sRUFDVixJQUFLLE1BQU1ySCxLQUFLckUsT0FBT29LLEtBQUtxQixHQUN4QkMsR0FBT0QsRUFBSXBILEdBQ2YsR0FBWSxJQUFScUgsRUFFSixJQUFLLE1BQU1ySCxLQUFLckUsT0FBT29LLEtBQUtxQixHQUN4QmxFLEVBQWExRyxHQUFHd0QsSUFBTXFILENBQzlCLENBQ0osQ0FDQSxNQUFBL0IsQ0FBT3BDLEVBQWNnQyxHQUNqQixNQUFNb0MsRUFBaUIsQ0FBQyxFQUNsQlIsRUFBUWpKLEtBQUtjLE1BQU1kLEtBQUtDLElBQUlELEtBQUtrSixNQUFNN0IsR0FBUSxJQUFNLEVBQ3JEOEIsRUFBV25KLEtBQUtvSixJQUFJLEdBQUlILEdBQzlCLElBQUssSUFBSXRLLEVBQUksRUFBR0EsRUFBSTBJLEVBQU8xSSxJQUN2QixHQUFLMEcsRUFBYTFHLEdBQWxCLENBR0E4SyxFQUFlOUssR0FBSyxDQUFDLEVBQ3JCLElBQUssSUFBSXdELEVBQUl4RCxFQUFHd0QsRUFBSWtGLEVBQU9sRixJQUFLLENBQzVCLElBQUtrRCxFQUFhMUcsS0FBS3dELEdBQ25CLFNBQ0osTUFBTWEsRUFBTXpGLEtBQUttTSxlQUFlckUsRUFBYzFHLEVBQUd3RCxHQUM3Q25DLEtBQUtxSixNQUFNckcsRUFBTW1HLEdBQVlBLEVBQVcsSUFDeENNLEVBQWU5SyxHQUFHd0QsR0FBS2EsRUFDbEJ5RyxFQUFldEgsS0FDaEJzSCxFQUFldEgsR0FBSyxDQUFDLEdBQ3pCc0gsRUFBZXRILEdBQUd4RCxHQUFLcUUsRUFFL0IsQ0FiWSxDQWVoQixPQUFPeUcsQ0FDWCxDQUdBLE9BQUEvQixDQUFRckMsR0FDSixJQUFLLE1BQU0xRyxLQUFLYixPQUFPb0ssS0FBSzdDLEdBQWUsQ0FDdkMsTUFBTWtFLEVBQU1sRSxFQUFhMUcsR0FDekIsSUFBSyxNQUFNd0QsS0FBS3JFLE9BQU9vSyxLQUFLcUIsR0FDeEJsRSxFQUFhMUcsR0FBR3dELEdBQUtuQyxLQUFLb0osSUFBSS9ELEVBQWExRyxHQUFHd0QsR0FBSTVFLEtBQUsySixTQUFTSCxjQUN4RSxDQUNKLENBQ0EsY0FBQTJDLENBQWVyRSxFQUFjMUcsRUFBR3dELEdBQzVCLElBQUlhLEVBQU0sRUFDVixNQUFNMkcsRUFBaUI3TCxPQUFPb0ssS0FBSzdDLEVBQWExRyxJQUFNLENBQUMsR0FDakRpTCxFQUFlOUwsT0FBT29LLEtBQUs3QyxFQUFhbEQsSUFBTSxDQUFDLEdBQ3JELElBQUssTUFBTTZHLEtBQUtXLEVBQ1JDLEVBQWFDLFNBQVNiLEtBQ3RCaEcsR0FBT3FDLEVBQWExRyxHQUFHcUssR0FBSzNELEVBQWFsRCxHQUFHNkcsSUFFcEQsT0FBT2hHLENBQ1gsRUM1TUpULFVBQVkyQyxNQUFPNEUsSUFDZixNQUFNLEtBQUV0SCxFQUFJLFVBQUVqQyxFQUFTLFFBQUVFLEVBQU8sa0JBQUVDLEVBQWlCLGVBQUVxSixFQUFjLFlBQUVDLEVBQVcsY0FBRWxELEdBQWtCZ0QsRUFBTXRILEtBQ3BHeUgsUUFBZSxJQUFJcEssR0FDcEJPLGdCQUFnQm9DLEVBQU13SCxFQUFhekosRUFBWSxJQUFLd0osRUFBZ0J0SixFQUFTQyxHQUM1RXdDLFFBQVksSUFBSStELEVBQWlCLENBQUVILGNBQWVBLEdBQWlCLElBQUtLLFVBQVU4QyxFQUFRekgsRUFBSyxHQUFHOUQsUUFDeEc0RCxZQUFZLENBQUVZLE9BQU0sRSIsInNvdXJjZXMiOlsid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC90eXBlcy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9pbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWF0cml4L3V0aWxzLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML2Jpby1sYXlvdXQuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML21hcmNvdi1jbHVzdGVyLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tY2wtd29ya2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHM7XG4oZnVuY3Rpb24gKERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzKSB7XG4gICAgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHNbXCJFVUNMSURFQU5cIl0gPSBcIkVVQ0xJREVBTlwiO1xuICAgIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzW1wiTUFOSEFUVEFOXCJdID0gXCJNQU5IQVRUQU5cIjtcbn0pKERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIHx8IChEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyA9IHt9KSk7XG47XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkSGx3WlhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUowZVhCbGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4TlFVRk5MRU5CUVU0c1NVRkJXU3d3UWtGSFZEdEJRVWhJTEZkQlFWa3NNRUpCUVRCQ08wbEJRMnhETEhGRVFVRjFRaXhEUVVGQk8wbEJRM1pDTEhGRVFVRjFRaXhEUVVGQk8wRkJRM3BDTEVOQlFVTXNSVUZJVXl3d1FrRkJNRUlzUzBGQk1VSXNNRUpCUVRCQ0xGRkJSMjVETzBGQlFVRXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltVjRjRzl5ZENCbGJuVnRJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpJSHRjYmlBZ0lDQkZWVU5NU1VSRlFVNGdQU0FuUlZWRFRFbEVSVUZPSnl4Y2JpQWdJQ0JOUVU1SVFWUlVRVTRnUFNBblRVRk9TRUZVVkVGT0p5eGNiaUFnZlR0Y2JseHVaWGh3YjNKMElIUjVjR1VnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ0E5SUd0bGVXOW1JSFI1Y0dWdlppQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2N6dGNiaUpkZlE9PSIsIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjO1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHtcblx0XHRcdHZhciBpID0gc2NyaXB0cy5sZW5ndGggLSAxO1xuXHRcdFx0d2hpbGUgKGkgPiAtMSAmJiAhc2NyaXB0VXJsKSBzY3JpcHRVcmwgPSBzY3JpcHRzW2ktLV0uc3JjO1xuXHRcdH1cblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gc2VsZi5sb2NhdGlvbiArIFwiXCI7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgY2h1bmtzXG4vLyBcIjFcIiBtZWFucyBcImFscmVhZHkgbG9hZGVkXCJcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDk5NzogMVxufTtcblxuLy8gbm8gY2h1bmsgaW5zdGFsbCBmdW5jdGlvbiBuZWVkZWRcbi8vIG5vIGNodW5rIGxvYWRpbmdcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsImltcG9ydCB7IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgY29uc3QgaXNOaWwgPSAoeCkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0U21hbGxlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPCBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPiB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24oYWdncmVnYXRpb25NZXRob2QsIHdlaWdodHMpIHtcbiAgICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgICAgIGNhc2UgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuTUFOSEFUVEFOOlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGV1Y2xpZGVhblxuICAgICAgICAgICAgICAgIGNvbnN0IHN1bSA9IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgKHZhbCAqIHdlaWdodHNbaWR4XSkgKiogMiwgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgICAgICAgfTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVRSQ0xEQkNRVUV3UWl4RlFVRkRMRTFCUVUwc1UwRkJVeXhEUVVGRE8wRkJSVGxGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzVTBGQlV5eERRVUZETzBGQlJTOUVMRTFCUVUwc1ZVRkJWU3hoUVVGaExFTkJRVU1zVjBGQmNVSXNSVUZCUlN4UFFVRnBRaXhGUVVGRkxFZEJRVmNzUlVGQlJTeExRVUZoTzBsQlEyaEhMRWxCUVVrc1IwRkJSeXhIUVVGSExGZEJRVmNzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4SFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONlF5eFBRVUZQTzBsQlJWUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6RkVMRmRCUVZjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5zUWl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM2hETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1dVRkJXU3hEUVVGRExGZEJRWEZDTEVWQlFVVXNUMEZCYVVJc1JVRkJSU3hIUVVGWExFVkJRVVVzUzBGQllUdEpRVU12Uml4SlFVRkpMRWRCUVVjc1IwRkJSeXhYUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla01zVDBGQlR6dEpRVVZVTEUxQlFVMHNWMEZCVnl4SFFVRkhMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU14UkN4WFFVRlhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGJFSXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNoRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONFF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSE5DUVVGelFpeERRVU53UXl4cFFrRkJORU1zUlVGQlJTeFBRVUZwUWp0SlFVVXZSQ3hSUVVGUkxHbENRVUZwUWl4RlFVRkZPMUZCUTNwQ0xFdEJRVXNzTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRaUVVOMlF5eFBRVUZQTEVOQlFVTXNSVUZCV1N4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKR08xbEJRMFVzVDBGQlR5eERRVUZETEVWQlFWa3NSVUZCUlN4RlFVRkZPMmRDUVVOMFFpeFpRVUZaTzJkQ1FVTmFMRTFCUVUwc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBVc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoQ0xFTkJRVU1zUTBGQlF6dExRVU5NTzBGQlEwZ3NRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkN3Z1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkhOOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOT2FXd2dQU0FvZURvZ1lXNTVLU0E5UGlCNElEMDlQU0J1ZFd4c0lIeDhJSGdnUFQwOUlIVnVaR1ZtYVc1bFpEdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x1YzJWeWRGTnRZV3hzWlhJb1pHbHpkR0Z1WTJWelFYSTZJRzUxYldKbGNsdGRMQ0JwYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYU3dnYm5WdE9pQnVkVzFpWlhJc0lHbHVaR1Y0T2lCdWRXMWlaWElwSUh0Y2JpQWdhV1lnS0c1MWJTQStJR1JwYzNSaGJtTmxjMEZ5VzJScGMzUmhibU5sYzBGeUxteGxibWQwYUMweFhTbGNiaUFnSUNCeVpYUjFjbTQ3WEc1Y2JpQWdZMjl1YzNRZ2JtVjNVRzl6YVhScGIyNGdQU0JrYVhOMFlXNWpaWE5CY2k1bWFXNWtTVzVrWlhnb0tIWXBJRDArSUc1MWJTQThJSFlwTzF4dUlDQmthWE4wWVc1alpYTkJjaTV3YjNBb0tUdGNiaUFnWkdsemRHRnVZMlZ6UVhJdWMzQnNhV05sS0c1bGQxQnZjMmwwYVc5dUxDQXdMQ0J1ZFcwcE8xeHVJQ0JwYm1SbGVHVnpMbkJ2Y0NncE8xeHVJQ0JwYm1SbGVHVnpMbk53YkdsalpTaHVaWGRRYjNOcGRHbHZiaXdnTUN3Z2FXNWtaWGdwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhVzV6WlhKMFRHRnlaMlZ5S0dScGMzUmhibU5sYzBGeU9pQnVkVzFpWlhKYlhTd2dhVzVrWlhobGN6b2diblZ0WW1WeVcxMHNJRzUxYlRvZ2JuVnRZbVZ5TENCcGJtUmxlRG9nYm5WdFltVnlLU0I3WEc0Z0lHbG1JQ2h1ZFcwZ1BDQmthWE4wWVc1alpYTkJjbHRrYVhOMFlXNWpaWE5CY2k1c1pXNW5kR2d0TVYwcFhHNGdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lHTnZibk4wSUc1bGQxQnZjMmwwYVc5dUlEMGdaR2x6ZEdGdVkyVnpRWEl1Wm1sdVpFbHVaR1Y0S0NoMktTQTlQaUJ1ZFcwZ1BpQjJLVHRjYmlBZ1pHbHpkR0Z1WTJWelFYSXVjRzl3S0NrN1hHNGdJR1JwYzNSaGJtTmxjMEZ5TG5Od2JHbGpaU2h1WlhkUWIzTnBkR2x2Yml3Z01Dd2diblZ0S1R0Y2JpQWdhVzVrWlhobGN5NXdiM0FvS1R0Y2JpQWdhVzVrWlhobGN5NXpjR3hwWTJVb2JtVjNVRzl6YVhScGIyNHNJREFzSUdsdVpHVjRLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRUZuWjNKbFoyRjBhVzl1Um5WdVkzUnBiMjRvWEc0Z0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a09pQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0xDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhWeHVLVG9nS0haaGJIVmxjem9nYm5WdFltVnlXMTBwSUQwK0lHNTFiV0psY2lCN1hHNGdJSE4zYVhSamFDQW9ZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBJSHRjYmlBZ0lDQmpZWE5sSUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6TGsxQlRraEJWRlJCVGpwY2JpQWdJQ0FnSUhKbGRIVnliaUFvZG5NNklHNTFiV0psY2x0ZEtTQTlQaUIyY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzTENCcFpIZ3BJRDArSUdGall5QXJJSFpoYkNBcUlIZGxhV2RvZEhOYmFXUjRYU3dnTUNrN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSEpsZEhWeWJpQW9kbk02SUc1MWJXSmxjbHRkS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQzh2SUdWMVkyeHBaR1ZoYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6ZFcwZ1BTQjJjeTV5WldSMVkyVW9LR0ZqWXl3Z2RtRnNMQ0JwWkhncElEMCtJR0ZqWXlBcklDaDJZV3dnS2lCM1pXbG5hSFJ6VzJsa2VGMHBJQ29xSURJc0lEQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdUV0YwYUM1emNYSjBLSE4xYlNrN1hHNGdJQ0FnSUNCOU8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiaW1wb3J0IHsgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGluc2VydFNtYWxsZXIsIGlzTmlsIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgY2xhc3MgU3BhcnNlTWF0cml4U2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3dvcmtlckNvdW50ID0gTWF0aC5tYXgobmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3kgLSAyLCAxKTtcbiAgICB9XG4gICAgYXN5bmMgY2FsY011bHRpQ29sdW1uKHZhbHVlcywgZm5OYW1lcywgdGhyZXNob2xkLCBvcHRzID0gW3t9XSwgd2VpZ2h0cyA9IFsxXSwgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBtaW5UaHJlc2hvbGQgPSB2YWx1ZXNbMF0ubGVuZ3RoID4gMjAwMDAgP1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRNaW5pbWFsVGhyZXNob2xkKHZhbHVlcywgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpIDogMDtcbiAgICAgICAgaWYgKHRocmVzaG9sZCA8IG1pblRocmVzaG9sZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHVzaW5nIHRocmVzaG9sZCAke21pblRocmVzaG9sZH1gKTtcbiAgICAgICAgICAgIHRocmVzaG9sZCA9IG1pblRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBvcHRzLmZvckVhY2goKF8sIGkpID0+IG9wdHNbaV1bJ3RocmVzaG9sZCddID0gdGhyZXNob2xkKTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9zcGFyc2UtbWF0cml4LXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgaTogbmV3IEludDMyQXJyYXkoMCksIGo6IG5ldyBJbnQzMkFycmF5KDApLCBkaXN0YW5jZTogbmV3IEZsb2F0MzJBcnJheSgwKSwgaWR4IH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgdGhyZXNob2xkLCBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgaSwgaiwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBpLCBqLCBkaXN0YW5jZSwgaWR4IH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIGNvbnN0IGZ1bGxTaXplID0gcmVzdWx0cy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwuaS5sZW5ndGgsIDApO1xuICAgICAgICBjb25zdCBpID0gbmV3IEludDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBjb25zdCBqID0gbmV3IEludDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IG5ldyBGbG9hdDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgLy8gc2V0dGluZyB0aGUgcmVzdWx0c1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBpLnNldChyZXMuaSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIGouc2V0KHJlcy5qLCBvZmZzZXQpO1xuICAgICAgICAgICAgZGlzdGFuY2Uuc2V0KHJlcy5kaXN0YW5jZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIG9mZnNldCArPSByZXMuaS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaSwgaiwgZGlzdGFuY2UgfTtcbiAgICB9XG4gICAgYXN5bmMgY2FsYyh2YWx1ZXMsIGZuTmFtZSwgdGhyZXNob2xkLCBvcHRzID0ge30pIHtcbiAgICAgICAgLy9zaXplIG9mIGZ1bGwgbWF0cml4XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNhbGNNdWx0aUNvbHVtbihbdmFsdWVzXSwgW2ZuTmFtZV0sIHRocmVzaG9sZCwgW29wdHNdLCBbMV0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRLTk4odmFsdWVzLCBmbk5hbWUsIG5OZWlnaGJvdXJzID0gMTUsIG9wdHMgPSB7fSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5tdWx0aUNvbHVtbktOTihbdmFsdWVzXSwgW2ZuTmFtZV0sIG5OZWlnaGJvdXJzLCBbb3B0c10sIFsxXSk7XG4gICAgfVxuICAgIGFzeW5jIGdldFRocmVzaG9sZEtOTih2YWx1ZXMsIGZuTmFtZSwgdGhyZXNob2xkID0gMC44LCBvcHRzID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4oW3ZhbHVlc10sIFtmbk5hbWVdLCB0aHJlc2hvbGQsIFtvcHRzXSwgWzFdKTtcbiAgICB9XG4gICAgYXN5bmMgbXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4odmFsdWVzLCBmbk5hbWVzLCB0aHJlc2hvbGQgPSAwLjgsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSBmbk5hbWVzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSBvcHRzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSB3ZWlnaHRzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWVzLCBkaXN0YW5jZSBmdW5jdGlvbnMsIG9wdGlvbnMgYW5kIHdlaWdodHMgYXJyYXlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCcpO1xuICAgICAgICBpZiAodmFsdWVzLnNvbWUoKHYpID0+IHYubGVuZ3RoICE9PSB2YWx1ZXNbMF0ubGVuZ3RoKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWxsIHZhbHVlcyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9rbm4tdGhyZXNob2xkLXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkoMCksIGtubkluZGV4ZXM6IG5ldyBBcnJheSgwKSB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2UoeyB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIGZuTmFtZXMsIG9wdHMsIHRocmVzaG9sZCwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBrbm5TaXplcyA9IG5ldyBJbnQzMkFycmF5KHZhbHVlc1swXS5sZW5ndGgpO1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSlcbiAgICAgICAgICAgICAgICBrbm5TaXplc1tpXSArPSByZXMua25uSW5kZXhlc1tpXT8ubGVuZ3RoID8/IDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga25uUmVzID0ge1xuICAgICAgICAgICAga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKF8sIGkpID0+IG5ldyBBcnJheShrbm5TaXplc1tpXSkpLFxuICAgICAgICAgICAga25uSW5kZXhlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKChfLCBpKSA9PiBuZXcgQXJyYXkoa25uU2l6ZXNbaV0pKVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmtubkRpc3RhbmNlc1tpXT8ubGVuZ3RoID8/IDA7ICsraikge1xuICAgICAgICAgICAgICAgICAgICBrbm5SZXMua25uRGlzdGFuY2VzW2ldW2tublNpemVzW2ldIC0gMV0gPSByZXMua25uRGlzdGFuY2VzW2ldW2pdO1xuICAgICAgICAgICAgICAgICAgICBrbm5SZXMua25uSW5kZXhlc1tpXVtrbm5TaXplc1tpXSAtIDFdID0gcmVzLmtubkluZGV4ZXNbaV1bal07XG4gICAgICAgICAgICAgICAgICAgIGtublNpemVzW2ldIC09IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm5SZXM7XG4gICAgfVxuICAgIGFzeW5jIG11bHRpQ29sdW1uS05OKHZhbHVlcywgZm5OYW1lcywgbk5laWdoYm91cnMgPSAxNSwgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT09IGZuTmFtZXMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IG9wdHMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZXMsIGRpc3RhbmNlIGZ1bmN0aW9ucywgb3B0aW9ucyBhbmQgd2VpZ2h0cyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGlmICh2YWx1ZXMuc29tZSgodikgPT4gdi5sZW5ndGggIT09IHZhbHVlc1swXS5sZW5ndGgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbGwgdmFsdWVzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpXG4gICAgICAgICAgICAuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2tubi13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuX3dvcmtlckNvdW50OyBpZHgrKykge1xuICAgICAgICAgICAgcHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydElkeCA9IGlkeCAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgaWYgKGVuZElkeCA8PSBzdGFydElkeClcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlczogbmV3IEFycmF5KDApLCBrbm5JbmRleGVzOiBuZXcgQXJyYXkoMCkgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHsgdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWVzLCBvcHRzLCBuTmVpZ2hib3Vycywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBrbm5SZXMgPSB7XG4gICAgICAgICAgICBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgQXJyYXkobk5laWdoYm91cnMpLmZpbGwoOTk5OTkpKSxcbiAgICAgICAgICAgIGtubkluZGV4ZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgQXJyYXkobk5laWdoYm91cnMpLmZpbGwoLTEpKVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmtubkRpc3RhbmNlc1tpXT8ubGVuZ3RoID8/IDA7ICsrailcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0U21hbGxlcihrbm5SZXMua25uRGlzdGFuY2VzW2ldLCBrbm5SZXMua25uSW5kZXhlc1tpXSwgcmVzLmtubkRpc3RhbmNlc1tpXVtqXSwgcmVzLmtubkluZGV4ZXNbaV1bal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm5SZXM7XG4gICAgfVxuICAgIGFzeW5jIGdldFNhbXBsZURpc3RhbmNlcyh2YWx1ZXMsIGZuTmFtZXMsIG9wdHMgPSBbXSwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgY29uc3QgdGhyZXNob2xkV29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCkuZmlsbChudWxsKVxuICAgICAgICAgICAgLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4vc3BhcnNlLW1hdHJpeC10aHJlc2hvbGQtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgIGNvbnN0IG1heFNhbXBsZVNpemUgPSAxMDAwMDAwO1xuICAgICAgICAgICAgY29uc3Qgc2FtcGxlU2lzZSA9IE1hdGgubWF4KE1hdGgubWluKG1hdFNpemUgLyAxMDAwLCBtYXhTYW1wbGVTaXplKSwgTWF0aC5taW4obWF0U2l6ZSwgbWF4U2FtcGxlU2l6ZSkpO1xuICAgICAgICAgICAgY29uc3QgdGVzdFNldFNpemVQZXJXb3JrZXIgPSBNYXRoLmZsb29yKHNhbXBsZVNpc2UgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgICAgICBjb25zdCB0UHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICAgICAgdFByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgc2FtcGxlTGVuZ3RoOiB0ZXN0U2V0U2l6ZVBlcldvcmtlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZuTmFtZXMsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgZGlzdGFuY2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwodFByb21pc2VzKTtcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxTaXplID0gcmVzdWx0cy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwuZGlzdGFuY2UubGVuZ3RoLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3IEZsb2F0MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZS5zZXQocmVzLmRpc3RhbmNlLCBvZmZzZXQpO1xuICAgICAgICAgICAgICAgIG9mZnNldCArPSByZXMuZGlzdGFuY2UubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlzdGFuY2Uuc29ydCgpO1xuICAgICAgICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzPy5mb3JFYWNoKCh3KSA9PiB3Py50ZXJtaW5hdGUoKSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoMSkuZmlsbCgwLjUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldE1pbmltYWxUaHJlc2hvbGQodmFsdWVzLCBmbk5hbWVzLCBvcHRzID0gW10sIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIC8vV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIG1pbmltYWwgdGhyZXNob2xkIGZpcnN0LFxuICAgICAgICAvL2luIG9yZGVyIHRvIGdldCBtYXRyaXggc3VjaCB0aGF0IGl0IGRvZXMgbm90IGV4Y2VlZCB0aGUgbWF4aW11bSBzaXplIG9mIDFHQlxuICAgICAgICAvL3dlIGhhdmUgMyByZXR1cm4gYXJyYXlzLCBlYWNoIDQgYml0ZXMgcGVyIGVsZW1lbnQsIHNvIGlmIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIG1hdHJpeCBpcyAxR0IsXG4gICAgICAgIGNvbnN0IG1heFNwYXJzZU1hdHJpeFNpemUgPSA3MDAwMDAwMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGF3YWl0IHRoaXMuZ2V0U2FtcGxlRGlzdGFuY2VzKHZhbHVlcywgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpO1xuICAgICAgICAgICAgY29uc3QgZnJhY3Rpb25JbmRleCA9IE1hdGguZmxvb3IobWF4U3BhcnNlTWF0cml4U2l6ZSAvIG1hdFNpemUgKiBkaXN0YW5jZS5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gMSAtIGRpc3RhbmNlW2ZyYWN0aW9uSW5kZXhdO1xuICAgICAgICAgICAgLy8gdGhyZXNob2xkID0gTWF0aC5tYXgodGhyZXNob2xkLCAwLjMpO1xuICAgICAgICAgICAgcmV0dXJuIHRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIHJldHVybiAwLjU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGNhbGNTeW5jKHZhbHVlcywgZm5OYW1lLCBkaXN0YW5jZUZuLCB0aHJlc2hvbGQpIHtcbiAgICAgICAgY29uc3QgaSA9IFtdO1xuICAgICAgICBjb25zdCBqID0gW107XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlcyA9IFtdO1xuICAgICAgICBsZXQgY250ID0gMDtcbiAgICAgICAgbGV0IG1pID0gMDtcbiAgICAgICAgbGV0IG1qID0gMDtcbiAgICAgICAgY29uc3QgZnVsbFNpemUgPSB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIHdoaWxlIChjbnQgPCBmdWxsU2l6ZSkge1xuICAgICAgICAgICAgLy9jb25zdCB2YWx1ZSA9IHNlcTFMaXN0W21pXSAmJiBzZXExTGlzdFttal0gPyBoYW1taW5nKHNlcTFMaXN0W21pXSwgc2VxMUxpc3RbbWpdKSA6IDA7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICFpc05pbCh2YWx1ZXNbbWldKSAmJiAhaXNOaWwodmFsdWVzW21qXSkgP1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlRm4odmFsdWVzW21pXSwgdmFsdWVzW21qXSkgOiAxO1xuICAgICAgICAgICAgY29uc3Qgc2ltaWxhcml0eSA9IDEgLSB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChzaW1pbGFyaXR5ID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIGkucHVzaChtaSk7XG4gICAgICAgICAgICAgICAgai5wdXNoKG1qKTtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbnQrKztcbiAgICAgICAgICAgIG1qKys7XG4gICAgICAgICAgICBpZiAobWogPT09IHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBtaSsrO1xuICAgICAgICAgICAgICAgIG1qID0gbWkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlBcnJheSA9IG5ldyBJbnQzMkFycmF5KGkpO1xuICAgICAgICBjb25zdCBqQXJyYXkgPSBuZXcgSW50MzJBcnJheShqKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZGlzdGFuY2VzKTtcbiAgICAgICAgcmV0dXJuIHsgaTogaUFycmF5LCBqOiBqQXJyYXksIGRpc3RhbmNlOiBkaXN0YW5jZUFycmF5IH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVU5CTEU5QlFVOHNSVUZCTkVJc01FSkJRVEJDTEVWQlFVTXNUVUZCVFN4VFFVRlRMRU5CUVVNN1FVRkRPVVVzVDBGQlR5eEZRVUZETEdGQlFXRXNSVUZCUlN4TFFVRkxMRVZCUVVNc1RVRkJUU3hUUVVGVExFTkJRVU03UVVGaE4wTXNUVUZCVFN4UFFVRlBMRzFDUVVGdFFqdEpRVVUxUWp0UlFVTkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pGTEVOQlFVTTdTVUZGVFN4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFMUJRVzlDTEVWQlFVVXNUMEZCZFVJc1JVRkRlRVVzVTBGQmFVSXNSVUZCUlN4UFFVRTJRaXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEZWQlFXOUNMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRemRGTEc5Q1FVRXJReXd3UWtGQk1FSXNRMEZCUXl4VFFVRlRPMUZCUlc1R0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTVSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZGTVVRc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhMUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU01UXl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoR0xFbEJRVWtzVTBGQlV5eEhRVUZITEZsQlFWa3NSVUZCUlR0WlFVTTFRaXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEcxQ1FVRnRRaXhaUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETzFsQlF5OURMRk5CUVZNc1IwRkJSeXhaUVVGWkxFTkJRVU03VTBGRE1VSTdVVUZEUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRM3BFTEUxQlFVMHNVVUZCVVN4SFFVTmFMRWxCUVVrc1MwRkJTeXhEUVVFNFFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkZOVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dGhRVU42UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEhkQ1FVRjNRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM2hHTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xbEJRMmhFTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEdGQlFXRXNSVUZCUlN4WlFVRlpMRVZCUVVVc1JVRkJSVHRuUWtGRE1VUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1IwRkJSeXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZEYWtNc1RVRkJUU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eExRVUZMTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0blFrRkRMMFVzU1VGQlNTeE5RVUZOTEVsQlFVa3NVVUZCVVR0dlFrRkRjRUlzWVVGQllTeERRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVGRExFMUJRVTBzUlVGQlJTeFJRVUZSTEVWQlFVVXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4cFFrRkJhVUlzUlVGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpOSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhGUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkVzUlVGQlF5eEZRVUZETEVWQlFWRXNSVUZCUlR0dlFrRkRha1VzU1VGQlNTeExRVUZMTEVWQlFVVTdkMEpCUTFRc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPM2RDUVVONlFpeFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN2NVSkJRM0pDTzNsQ1FVRk5PM2RDUVVOTUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkRMRU5CUVVNc1EwRkJRenR4UWtGRGRFTTdaMEpCUTBnc1EwRkJReXhEUVVGRE8xbEJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEU2p0UlFVVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNMVF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyNURMRTFCUVUwc1EwRkJReXhIUVVGSExFbEJRVWtzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRelZETEVsQlFVa3NUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVObUxITkNRVUZ6UWp0UlFVTjBRaXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTjZRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGNrSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNKQ0xGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdVMEZEZUVJN1VVRkRSQ3hQUVVGUExFVkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVNc1EwRkJRenRKUVVNeFFpeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJTU3hOUVVGblFpeEZRVUZGTEUxQlFXOUNMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeFBRVUV5UWl4RlFVRkZPMUZCUXpOSExIRkNRVUZ4UWp0UlFVTnlRaXhQUVVGUExFMUJRVTBzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJoR0xFTkJRVU03U1VGRlRTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVTnFRaXhOUVVGclFpeEZRVUZGTEUxQlFXOUNMRVZCUVVVc1kwRkJjMElzUlVGQlJTeEZRVUZGTEU5QlFUSkNMRVZCUVVVN1VVRkZha2NzVDBGQlR5eE5RVUZOTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRmRCUVZjc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVJpeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkRNVUlzVFVGQmEwSXNSVUZCUlN4TlFVRnZRaXhGUVVGRkxGbEJRVzlDTEVkQlFVY3NSVUZCUlN4UFFVRXlRaXhGUVVGRk8xRkJSV2hITEU5QlFVOHNUVUZCVFN4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRSaXhEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEhWQ1FVRjFRaXhEUVVGRExFMUJRWGxDTEVWQlFVVXNUMEZCZFVJc1JVRkJSU3haUVVGdlFpeEhRVUZITEVWQlF6bEhMRWxCUVRCQ0xFVkJRVVVzVDBGQmFVSXNSVUZETjBNc2IwSkJRU3RETERCQ1FVRXdRaXhEUVVGRExGTkJRVk03VVVGRmJrWXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1QwRkJUeXhEUVVGRExFMUJRVTA3V1VGRGRrY3NUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXh2UmtGQmIwWXNRMEZCUXl4RFFVRkRPMUZCUlhoSExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNTMEZCU3l4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyNUVMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zSzBOQlFTdERMRU5CUVVNc1EwRkJRenRSUVVWdVJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRPVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVU5hTEVsQlFVa3NTMEZCU3l4RFFVRnhRaXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZEYmtRc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJRenRoUVVONlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExIZENRVUYzUWl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoR0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTJoRUxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExHRkJRV0VzUlVGQlJTeFpRVUZaTEVWQlFVVXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZETDBVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVVVGQlVUdHZRa0ZEY0VJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaEZMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU16Unl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJReXhMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RlFVRkRMRVZCUVZFc1JVRkJSVHR2UWtGRE0wVXNTVUZCU1N4TFFVRkxMRVZCUVVVN2QwSkJRMVFzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZENRVU42UWl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03Y1VKQlEzSkNPM2xDUVVGTk8zZENRVU5NTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dDNRa0ZEZWtJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzJkQ1FVTklMRU5CUVVNc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTJ4RUxFdEJRVXNzVFVGQlRTeEhRVUZITEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTNwQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJRenRuUWtGRGRrTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFRRVU5xUkR0UlFVTkVMRTFCUVUwc1RVRkJUU3hIUVVGak8xbEJRM2hDTEZsQlFWa3NSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyeEhMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGVExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUVVNc1EwRkJRenRSUVVOd1J5eExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTlCUVU4c1JVRkJSVHRaUVVONlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdG5Ra0ZEZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdHZRa0ZEZWtRc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRha1VzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRE4wUXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dHBRa0ZEYkVJN1lVRkRSanRUUVVOR08xRkJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTTdTVUZEYUVJc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNUVUZCZVVJc1JVRkJSU3hQUVVGMVFpeEZRVUZGTEdOQlFYTkNMRVZCUVVVc1JVRkRkRWNzU1VGQk1FSXNSVUZCUlN4UFFVRnBRaXhGUVVNM1F5eHZRa0ZCSzBNc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0UlFVVnVSaXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1RVRkJUU3hEUVVGRExFMUJRVTBzUzBGQlN5eFBRVUZQTEVOQlFVTXNUVUZCVFR0WlFVTjJSeXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEc5R1FVRnZSaXhEUVVGRExFTkJRVU03VVVGRmVFY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRia1FzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl3clEwRkJLME1zUTBGQlF5eERRVUZETzFGQlJXNUZMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU01UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE1VUXNUVUZCVFN4UlFVRlJMRWRCUTFvc1NVRkJTU3hMUVVGTExFTkJRWEZDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOdVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETzJGQlEzcERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNZMEZCWXl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpsRkxFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTJoRUxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExHRkJRV0VzUlVGQlJTeFpRVUZaTEVWQlFVVXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZETDBVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVVVGQlVUdHZRa0ZEY0VJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaEZMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRmRCUVZjc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU0zUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJReXhMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RlFVRkRMRVZCUVZFc1JVRkJSVHR2UWtGRE0wVXNTVUZCU1N4TFFVRkxMRVZCUVVVN2QwSkJRMVFzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZENRVU42UWl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03Y1VKQlEzSkNPM2xDUVVGTk8zZENRVU5NTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dDNRa0ZEZWtJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzJkQ1FVTklMRU5CUVVNc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeE5RVUZOTEVkQlFXTTdXVUZEZUVJc1dVRkJXU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRmRCUVZjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTXhSeXhWUVVGVkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVZNc1YwRkJWeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkJReXhEUVVGRE8xRkJRM3BITEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1QwRkJUeXhGUVVGRk8xbEJRM3BDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTzJkQ1FVTjZReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4TlFVRk5MRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF6dHZRa0ZEZGtRc1lVRkJZU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVNM1J6dFRRVU5HTzFGQlEwUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZOTEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eE5RVUZ2UWl4RlFVTnNSQ3hQUVVGMVFpeEZRVUZGTEU5QlFUWkNMRVZCUVVVc1JVRkJSU3hQUVVGcFFpeEZRVU16UlN4dlFrRkJLME1zTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRSUVVOdVJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETzJGQlF6ZEVMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhyUTBGQmEwTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjJSaXhKUVVGSk8xbEJRMFlzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUXpsRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0WlFVTXhSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFBRVUZUTEVOQlFVTTdXVUZEYUVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOMlJ5eE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVU40UlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQmIwTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xbEJSV3hHTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8yZENRVU5vUkN4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4aFFVRmhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFVkJRVVU3YjBKQlF6TkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFZEJRVWNzUjBGQlJ5eFRRVUZUTEVOQlFVTTdiMEpCUTJwRExFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN2IwSkJReTlGTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXp0M1FrRkRhRU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3hGUVVGRkxGbEJRVmtzUlVGQlJTeHZRa0ZCYjBJN2QwSkJRM0JGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWp0eFFrRkRNVU1zUTBGQlF5eERRVUZETzI5Q1FVTklMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFVkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1JVRkJReXhGUVVGRExFVkJRVkVzUlVGQlJUdDNRa0ZEY0VVc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03ZDBKQlEyeERMRWxCUVVrc1MwRkJTenMwUWtGQlJTeFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN096UkNRVU0zUWl4aFFVRmhMRU5CUVVNc1JVRkJReXhSUVVGUkxFVkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTTVRaXhEUVVGRExFTkJRVU03WjBKQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRTanRaUVVWRUxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFpRVU0zUXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6VkZMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMWxCUXpWRExFbEJRVWtzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTm1MRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVDBGQlR5eEZRVUZGTzJkQ1FVTjZRaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03WjBKQlEyNURMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXp0aFFVTXZRanRaUVVORUxGRkJRVkVzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVVm9RaXhQUVVGUExGRkJRVkVzUTBGQlF6dFRRVU5xUWp0UlFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMVlzWjBKQlFXZENMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1UwRkJVeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU5xUkN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycENMRTlCUVU4c1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRM1JETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRnZRaXhGUVVOd1JDeFBRVUYxUWl4RlFVRkZMRTlCUVRaQ0xFVkJRVVVzUlVGQlJTeFBRVUZwUWl4RlFVTXpSU3h2UWtGQkswTXNNRUpCUVRCQ0xFTkJRVU1zVTBGQlV6dFJRVU51Uml4dFJFRkJiVVE3VVVGRGJrUXNOa1ZCUVRaRk8xRkJRemRGTEdsSFFVRnBSenRSUVVOcVJ5eE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExGRkJRVlVzUTBGQlF6dFJRVU4yUXl4SlFVRkpPMWxCUTBZc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoRUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8xbEJRMnhITEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRWRCUVVjc1QwRkJUeXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTnNSaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xbEJRemxETEhkRFFVRjNRenRaUVVONFF5eFBRVUZQTEZOQlFWTXNRMEZCUXp0VFFVTnNRanRSUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFsQlExWXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5xUWl4UFFVRlBMRWRCUVVjc1EwRkJRenRUUVVOYU8wbEJRMGdzUTBGQlF6dEpRVVZOTEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUTNCQ0xFMUJRU3RDTEVWQlFVVXNUVUZCYjBJc1JVRkJSU3hWUVVGdlFpeEZRVUZGTEZOQlFXbENPMUZCUlRsR0xFMUJRVTBzUTBGQlF5eEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFTkJRVU1zUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hUUVVGVExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlF5OUNMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5hTEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOWUxFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTllMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjZSQ3hQUVVGUExFZEJRVWNzUjBGQlJ5eFJRVUZSTEVWQlFVVTdXVUZEY2tJc2RVWkJRWFZHTzFsQlEzWkdMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzUkVMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUXpkQ0xFbEJRVWtzVlVGQlZTeEpRVUZKTEZOQlFWTXNSVUZCUlR0blFrRkRNMElzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRFdDeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU5ZTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WVVGRGRrSTdXVUZEUkN4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOT0xFVkJRVVVzUlVGQlJTeERRVUZETzFsQlEwd3NTVUZCU1N4RlFVRkZMRXRCUVVzc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJUdG5Ra0ZEZUVJc1JVRkJSU3hGUVVGRkxFTkJRVU03WjBKQlEwd3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03WVVGRFlqdFRRVU5HTzFGQlJVUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRha01zVFVGQlRTeGhRVUZoTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRmJFUXNUMEZCVHl4RlFVRkRMRU5CUVVNc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1lVRkJZU3hGUVVGRExFTkJRVU03U1VGRGVrUXNRMEZCUXp0RFFVTktJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRMYm05M2JrMWxkSEpwWTNOOUlHWnliMjBnSnk0dUwzUjVjR1ZrTFcxbGRISnBZM01uTzF4dWFXMXdiM0owSUh0RWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrTENCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrYzMwZ1puSnZiU0FuTGk5MGVYQmxjeWM3WEc1cGJYQnZjblFnZTJsdWMyVnlkRk50WVd4c1pYSXNJR2x6VG1sc2ZTQm1jbTl0SUNjdUwzVjBhV3h6Snp0Y2JseHVaWGh3YjNKMElIUjVjR1VnVTNCaGNuTmxUV0YwY21sNFVtVnpkV3gwSUQwZ2UxeHVJQ0JwT2lCSmJuUXpNa0Z5Y21GNUxGeHVJQ0JxT2lCSmJuUXpNa0Z5Y21GNUxGeHVJQ0JrYVhOMFlXNWpaVG9nUm14dllYUXpNa0Z5Y21GNUxGeHVJQ0JwWkhnL09pQnVkVzFpWlhKY2JuMDdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFdHVibEpsYzNWc2RDQTlJSHRjYmlBZ2EyNXVSR2x6ZEdGdVkyVnpPaUJ1ZFcxaVpYSmJYVnRkTEZ4dUlDQnJibTVKYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYVnRkWEc1OVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTNCaGNuTmxUV0YwY21sNFUyVnlkbWxqWlNCN1hHNGdJQ0FnY0hKcGRtRjBaU0JmZDI5eWEyVnlRMjkxYm5RNklHNTFiV0psY2p0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNBZ0lIUm9hWE11WDNkdmNtdGxja052ZFc1MElEMGdUV0YwYUM1dFlYZ29ibUYyYVdkaGRHOXlMbWhoY21SM1lYSmxRMjl1WTNWeWNtVnVZM2tnTFNBeUxDQXhLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1lYTjVibU1nWTJGc1kwMTFiSFJwUTI5c2RXMXVLSFpoYkhWbGN6b2dRWEp5WVhrOFlXNTVXMTArTENCbWJrNWhiV1Z6T2lCTGJtOTNiazFsZEhKcFkzTmJYU3hjYmlBZ0lDQWdJSFJvY21WemFHOXNaRG9nYm5WdFltVnlMQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMWJYU0E5SUZ0N2ZWMHNJSGRsYVdkb2RITTZJRzUxYldKbGNsdGRJRDBnV3pGZExGeHVJQ0FnSUNBZ1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRNklFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJRZ1BTQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2N5NUZWVU5NU1VSRlFVNWNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHTnZibk4wSUcxaGRGTnBlbVVnUFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvSUNvZ0tIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYUhWdWExTnBlbVVnUFNCTllYUm9MbVpzYjI5eUtHMWhkRk5wZW1VZ0x5QjBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMXBibFJvY21WemFHOXNaQ0E5SUhaaGJIVmxjMXN3WFM1c1pXNW5kR2dnUGlBeU1GOHdNREFnUDF4dUlDQWdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxtZGxkRTFwYm1sdFlXeFVhSEpsYzJodmJHUW9kbUZzZFdWekxDQm1iazVoYldWekxDQnZjSFJ6TENCM1pXbG5hSFJ6TENCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkNrZ09pQXdPMXh1SUNBZ0lDQWdhV1lnS0hSb2NtVnphRzlzWkNBOElHMXBibFJvY21WemFHOXNaQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpiMnhsTG14dlp5aGdkWE5wYm1jZ2RHaHlaWE5vYjJ4a0lDUjdiV2x1VkdoeVpYTm9iMnhrZldBcE8xeHVJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUWdQU0J0YVc1VWFISmxjMmh2YkdRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCdmNIUnpMbVp2Y2tWaFkyZ29LRjhzSUdrcElEMCtJRzl3ZEhOYmFWMWJKM1JvY21WemFHOXNaQ2RkSUQwZ2RHaHlaWE5vYjJ4a0tUdGNiaUFnSUNBZ0lHTnZibk4wSUhCeWIyMXBjMlZ6SUQxY2JpQWdJQ0FnSUNBZ2JtVjNJRUZ5Y21GNVBGQnliMjFwYzJVOFUzQmhjbk5sVFdGMGNtbDRVbVZ6ZFd4MFBqNG9kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQjNiM0pyWlhKeklEMGdibVYzSUVGeWNtRjVLSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVnh1SUNBZ0lDQWdJQ0F1Wm1sc2JDaHVkV3hzS1M1dFlYQW9LQ2tnUFQ0Z2JtVjNJRmR2Y210bGNpaHVaWGNnVlZKTUtDY3VMM053WVhKelpTMXRZWFJ5YVhndGQyOXlhMlZ5Snl3Z2FXMXdiM0owTG0xbGRHRXVkWEpzS1NrcE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FXUjRJRDBnTURzZ2FXUjRJRHdnZEdocGN5NWZkMjl5YTJWeVEyOTFiblE3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0FnSUhCeWIyMXBjMlZ6VzJsa2VGMGdQU0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlZkdmNtdGxjaXdnY21WcVpXTjBWMjl5YTJWeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzNSaGNuUkpaSGdnUFNCcFpIZ2dLaUJqYUhWdWExTnBlbVU3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWlc1a1NXUjRJRDBnYVdSNElEMDlQU0IwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ0F0SURFZ1B5QnRZWFJUYVhwbElEb2dLR2xrZUNBcklERXBJQ29nWTJoMWJtdFRhWHBsTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hsYm1SSlpIZ2dQRDBnYzNSaGNuUkpaSGdwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWE52YkhabFYyOXlhMlZ5S0h0cE9pQnVaWGNnU1c1ME16SkJjbkpoZVNnd0tTd2dham9nYm1WM0lFbHVkRE15UVhKeVlYa29NQ2tzSUdScGMzUmhibU5sT2lCdVpYY2dSbXh2WVhRek1rRnljbUY1S0RBcExDQnBaSGg5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1Y0c5emRFMWxjM05oWjJVb2UzWmhiSFZsY3l3Z2MzUmhjblJKWkhnc0lHVnVaRWxrZUN3Z2RHaHlaWE5vYjJ4a0xDQm1iazVoYldWekxDQnZjSFJ6TENCM1pXbG5hSFJ6TENCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkgwcE8xeHVJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1dmJtMWxjM05oWjJVZ1BTQW9lMlJoZEdFNklIdGxjbkp2Y2l3Z2FTd2dhaXdnWkdsemRHRnVZMlY5ZlNrNklIWnZhV1FnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZxWldOMFYyOXlhMlZ5S0dWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2FTd2dhaXdnWkdsemRHRnVZMlVzSUdsa2VIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2NISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWm5Wc2JGTnBlbVVnUFNCeVpYTjFiSFJ6TG5KbFpIVmpaU2dvWVdOakxDQjJZV3dwSUQwK0lHRmpZeUFySUhaaGJDNXBMbXhsYm1kMGFDd2dNQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQnBJRDBnYm1WM0lFbHVkRE15UVhKeVlYa29ablZzYkZOcGVtVXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2FpQTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHWjFiR3hUYVhwbEtUdGNiaUFnSUNBZ0lHTnZibk4wSUdScGMzUmhibU5sSUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNobWRXeHNVMmw2WlNrN1hHNGdJQ0FnSUNCc1pYUWdiMlptYzJWMElEMGdNRHRjYmlBZ0lDQWdJQzh2SUhObGRIUnBibWNnZEdobElISmxjM1ZzZEhOY2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NtVnpJRzltSUhKbGMzVnNkSE1wSUh0Y2JpQWdJQ0FnSUNBZ2FTNXpaWFFvY21Wekxta3NJRzltWm5ObGRDazdYRzRnSUNBZ0lDQWdJR291YzJWMEtISmxjeTVxTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNCa2FYTjBZVzVqWlM1elpYUW9jbVZ6TG1ScGMzUmhibU5sTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNCdlptWnpaWFFnS3owZ2NtVnpMbWt1YkdWdVozUm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlIdHBMQ0JxTENCa2FYTjBZVzVqWlgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHTmhiR004VkQ0b2RtRnNkV1Z6T2lCQmNuSmhlVHhVUGl3Z1ptNU9ZVzFsT2lCTGJtOTNiazFsZEhKcFkzTXNJSFJvY21WemFHOXNaRG9nYm5WdFltVnlMQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMGdQU0I3ZlNrZ2UxeHVJQ0FnSUNBZ0x5OXphWHBsSUc5bUlHWjFiR3dnYldGMGNtbDRYRzRnSUNBZ0lDQnlaWFIxY200Z1lYZGhhWFFnZEdocGN5NWpZV3hqVFhWc2RHbERiMngxYlc0b1czWmhiSFZsYzEwc0lGdG1iazVoYldWZExDQjBhSEpsYzJodmJHUXNJRnR2Y0hSelhTd2dXekZkS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZWE41Ym1NZ1oyVjBTMDVPS0Z4dUlDQWdJQ0FnZG1Gc2RXVnpPaUJCY25KaGVUeGhibmsrTENCbWJrNWhiV1U2SUV0dWIzZHVUV1YwY21samN5d2diazVsYVdkb1ltOTFjbk02SUc1MWJXSmxjaUE5SURFMUxDQnZjSFJ6T2lCN1cxODZJSE4wY21sdVoxMDZJR0Z1ZVgwZ1BTQjdmVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUhSb2FYTXViWFZzZEdsRGIyeDFiVzVMVGs0b1czWmhiSFZsYzEwc0lGdG1iazVoYldWZExDQnVUbVZwWjJoaWIzVnljeXdnVzI5d2RITmRMQ0JiTVYwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJoYzNsdVl5Qm5aWFJVYUhKbGMyaHZiR1JMVGs0b1hHNGdJQ0FnSUNCMllXeDFaWE02SUVGeWNtRjVQR0Z1ZVQ0c0lHWnVUbUZ0WlRvZ1MyNXZkMjVOWlhSeWFXTnpMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaUE5SURBdU9Dd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOUlEMGdlMzFjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhkMkZwZENCMGFHbHpMbTExYkhScFEyOXNkVzF1VkdoeVpYTm9iMnhrUzI1dUtGdDJZV3gxWlhOZExDQmJabTVPWVcxbFhTd2dkR2h5WlhOb2IyeGtMQ0JiYjNCMGMxMHNJRnN4WFNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHMTFiSFJwUTI5c2RXMXVWR2h5WlhOb2IyeGtTMjV1S0haaGJIVmxjem9nUVhKeVlYazhRWEp5WVhrOFlXNTVQajRzSUdadVRtRnRaWE02SUV0dWIzZHVUV1YwY21samMxdGRMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaUE5SURBdU9DeGNiaUFnSUNBZ0lHOXdkSE02SUh0Ylh6b2djM1J5YVc1blhUb2dZVzU1ZlZ0ZExDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhTeGNiaUFnSUNBZ0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a09pQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0lEMGdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpITXVSVlZEVEVsRVJVRk9YRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnBaaUFvZG1Gc2RXVnpMbXhsYm1kMGFDQWhQVDBnWm01T1lXMWxjeTVzWlc1bmRHZ2dmSHdnZG1Gc2RXVnpMbXhsYm1kMGFDQWhQVDBnYjNCMGN5NXNaVzVuZEdnZ2ZId2dkbUZzZFdWekxteGxibWQwYUNBaFBUMGdkMlZwWjJoMGN5NXNaVzVuZEdncFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbmRtRnNkV1Z6TENCa2FYTjBZVzVqWlNCbWRXNWpkR2x2Ym5Nc0lHOXdkR2x2Ym5NZ1lXNWtJSGRsYVdkb2RITWdZWEp5WVhseklITm9iM1ZzWkNCb1lYWmxJSFJvWlNCellXMWxJR3hsYm1kMGFDY3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RtRnNkV1Z6TG5OdmJXVW9LSFlwSUQwK0lIWXViR1Z1WjNSb0lDRTlQU0IyWVd4MVpYTmJNRjB1YkdWdVozUm9LU2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RoYkd3Z2RtRnNkV1Z6SUdGeWNtRjVjeUJ6YUc5MWJHUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2duS1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYldGMFUybDZaU0E5SUhaaGJIVmxjMXN3WFM1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6V3pCZExteGxibWQwYUNBdElERXBJQzhnTWp0Y2JpQWdJQ0FnSUdOdmJuTjBJR05vZFc1clUybDZaU0E5SUUxaGRHZ3VabXh2YjNJb2JXRjBVMmw2WlNBdklIUm9hWE11WDNkdmNtdGxja052ZFc1MEtUdGNiaUFnSUNBZ0lHTnZibk4wSUhCeWIyMXBjMlZ6SUQxY2JpQWdJQ0FnSUNBZ2JtVjNJRUZ5Y21GNVBGQnliMjFwYzJVOFMyNXVVbVZ6ZFd4MFBqNG9kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2QyOXlhMlZ5Y3lBOUlHNWxkeUJCY25KaGVTaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDbGNiaUFnSUNBZ0lDQWdMbVpwYkd3b2JuVnNiQ2t1YldGd0tDZ3BJRDArSUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOXJibTR0ZEdoeVpYTm9iMnhrTFhkdmNtdGxjaWNzSUdsdGNHOXlkQzV0WlhSaExuVnliQ2twS1R0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBPeUJwWkhnckt5a2dlMXh1SUNBZ0lDQWdJQ0J3Y205dGFYTmxjMXRwWkhoZElEMGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVZYYjNKclpYSXNJSEpsYW1WamRGZHZjbXRsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFNXUjRJRDBnYVdSNElDb2dZMmgxYm10VGFYcGxPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVsa2VDQTlJR2xrZUNBOVBUMGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUWdMU0F4SUQ4Z2JXRjBVMmw2WlNBNklDaHBaSGdnS3lBeEtTQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aVzVrU1dSNElEdzlJSE4wWVhKMFNXUjRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YTI1dVJHbHpkR0Z1WTJWek9pQnVaWGNnUVhKeVlYa29NQ2tzSUd0dWJrbHVaR1Y0WlhNNklHNWxkeUJCY25KaGVTZ3dLWDBwTzF4dUlDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzV3YjNOMFRXVnpjMkZuWlNoN2RtRnNkV1Z6TENCemRHRnlkRWxrZUN3Z1pXNWtTV1I0TENCbWJrNWhiV1Z6TENCdmNIUnpMQ0IwYUhKbGMyaHZiR1FzSUhkbGFXZG9kSE1zSUdGblozSmxaMkYwYVc5dVRXVjBhRzlrZlNrN1hHNGdJQ0FnSUNBZ0lDQWdkMjl5YTJWeWMxdHBaSGhkTG05dWJXVnpjMkZuWlNBOUlDaDdaR0YwWVRvZ2UyVnljbTl5TENCcmJtNUVhWE4wWVc1alpYTXNJR3R1YmtsdVpHVjRaWE45ZlNrNklIWnZhV1FnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZxWldOMFYyOXlhMlZ5S0dWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2EyNXVSR2x6ZEdGdVkyVnpMQ0JyYm01SmJtUmxlR1Z6ZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsYzNWc2RITWdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWs3WEc0Z0lDQWdJQ0JqYjI1emRDQnJibTVUYVhwbGN5QTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtIWmhiSFZsYzFzd1hTNXNaVzVuZEdncE8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnlaWE1nYjJZZ2NtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFpoYkhWbGMxc3dYUzVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0FnSUNBZ0lDQnJibTVUYVhwbGMxdHBYU0FyUFNCeVpYTXVhMjV1U1c1a1pYaGxjMXRwWFQ4dWJHVnVaM1JvSUQ4L0lEQTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpiMjV6ZENCcmJtNVNaWE02SUV0dWJsSmxjM1ZzZENBOUlIdGNiaUFnSUNBZ0lDQWdhMjV1UkdsemRHRnVZMlZ6T2lCdVpYY2dRWEp5WVhrb2RtRnNkV1Z6V3pCZExteGxibWQwYUNrdVptbHNiQ2h1ZFd4c0tTNXRZWEFvS0Y4c0lHa3BJRDArSUc1bGR5QkJjbkpoZVR4dWRXMWlaWEkrS0d0dWJsTnBlbVZ6VzJsZEtTa3NYRzRnSUNBZ0lDQWdJR3R1YmtsdVpHVjRaWE02SUc1bGR5QkJjbkpoZVNoMllXeDFaWE5iTUYwdWJHVnVaM1JvS1M1bWFXeHNLRzUxYkd3cExtMWhjQ2dvWHl3Z2FTa2dQVDRnYm1WM0lFRnljbUY1UEc1MWJXSmxjajRvYTI1dVUybDZaWE5iYVYwcEtYMDdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpsY3lCdlppQnlaWE4xYkhSektTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZG1Gc2RXVnpXekJkTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYWlBOUlEQTdJR29nUENCeVpYTXVhMjV1UkdsemRHRnVZMlZ6VzJsZFB5NXNaVzVuZEdnZ1B6OGdNRHNnS3l0cUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcmJtNVNaWE11YTI1dVJHbHpkR0Z1WTJWelcybGRXMnR1YmxOcGVtVnpXMmxkSUMwZ01WMGdQU0J5WlhNdWEyNXVSR2x6ZEdGdVkyVnpXMmxkVzJwZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYTI1dVVtVnpMbXR1YmtsdVpHVjRaWE5iYVYxYmEyNXVVMmw2WlhOYmFWMGdMU0F4WFNBOUlISmxjeTVyYm01SmJtUmxlR1Z6VzJsZFcycGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2EyNXVVMmw2WlhOYmFWMGdMVDBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnJibTVTWlhNN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHMTFiSFJwUTI5c2RXMXVTMDVPS0haaGJIVmxjem9nUVhKeVlYazhRWEp5WVhrOFlXNTVQajRzSUdadVRtRnRaWE02SUV0dWIzZHVUV1YwY21samMxdGRMQ0J1VG1WcFoyaGliM1Z5Y3pvZ2JuVnRZbVZ5SUQwZ01UVXNYRzRnSUNBZ0lDQnZjSFJ6T2lCN1cxODZJSE4wY21sdVoxMDZJR0Z1ZVgxYlhTd2dkMlZwWjJoMGN6b2diblZ0WW1WeVcxMHNYRzRnSUNBZ0lDQmhaMmR5WldkaGRHbHZiazFsZEdodlpEb2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDQTlJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpMa1ZWUTB4SlJFVkJUbHh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdhV1lnS0haaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUdadVRtRnRaWE11YkdWdVozUm9JSHg4SUhaaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUc5d2RITXViR1Z1WjNSb0lIeDhJSFpoYkhWbGN5NXNaVzVuZEdnZ0lUMDlJSGRsYVdkb2RITXViR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0ozWmhiSFZsY3l3Z1pHbHpkR0Z1WTJVZ1puVnVZM1JwYjI1ekxDQnZjSFJwYjI1eklHRnVaQ0IzWldsbmFIUnpJR0Z5Y21GNWN5QnphRzkxYkdRZ2FHRjJaU0IwYUdVZ2MyRnRaU0JzWlc1bmRHZ25LVHRjYmx4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsY3k1emIyMWxLQ2gyS1NBOVBpQjJMbXhsYm1kMGFDQWhQVDBnZG1Gc2RXVnpXekJkTG14bGJtZDBhQ2twWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduWVd4c0lIWmhiSFZsY3lCaGNuSmhlWE1nYzJodmRXeGtJR2hoZG1VZ2RHaGxJSE5oYldVZ2JHVnVaM1JvSnlrN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUcxaGRGTnBlbVVnUFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvSUNvZ0tIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYUhWdWExTnBlbVVnUFNCTllYUm9MbVpzYjI5eUtHMWhkRk5wZW1VZ0x5QjBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzRnSUNBZ0lDQmpiMjV6ZENCd2NtOXRhWE5sY3lBOVhHNGdJQ0FnSUNBZ0lHNWxkeUJCY25KaGVUeFFjbTl0YVhObFBFdHVibEpsYzNWc2RENCtLSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVHRjYmlBZ0lDQWdJR052Ym5OMElIZHZjbXRsY25NZ1BTQnVaWGNnUVhKeVlYa29kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBYRzRnSUNBZ0lDQWdJQzVtYVd4c0tHNTFiR3dwTG0xaGNDZ29LU0E5UGlCdVpYY2dWMjl5YTJWeUtHNWxkeUJWVWt3b0p5NHZhMjV1TFhkdmNtdGxjaWNzSUdsdGNHOXlkQzV0WlhSaExuVnliQ2twS1R0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBPeUJwWkhnckt5a2dlMXh1SUNBZ0lDQWdJQ0J3Y205dGFYTmxjMXRwWkhoZElEMGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVZYYjNKclpYSXNJSEpsYW1WamRGZHZjbXRsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFNXUjRJRDBnYVdSNElDb2dZMmgxYm10VGFYcGxPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVsa2VDQTlJR2xrZUNBOVBUMGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUWdMU0F4SUQ4Z2JXRjBVMmw2WlNBNklDaHBaSGdnS3lBeEtTQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aVzVrU1dSNElEdzlJSE4wWVhKMFNXUjRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YTI1dVJHbHpkR0Z1WTJWek9pQnVaWGNnUVhKeVlYa29NQ2tzSUd0dWJrbHVaR1Y0WlhNNklHNWxkeUJCY25KaGVTZ3dLWDBwTzF4dUlDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzV3YjNOMFRXVnpjMkZuWlNoN2RtRnNkV1Z6TENCemRHRnlkRWxrZUN3Z1pXNWtTV1I0TENCbWJrNWhiV1Z6TENCdmNIUnpMQ0J1VG1WcFoyaGliM1Z5Y3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJSOUtUdGNiaUFnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWIyNXRaWE56WVdkbElEMGdLSHRrWVhSaE9pQjdaWEp5YjNJc0lHdHVia1JwYzNSaGJtTmxjeXdnYTI1dVNXNWtaWGhsYzMxOUtUb2dkbTlwWkNBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WldwbFkzUlhiM0pyWlhJb1pYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxWMjl5YTJWeUtIdHJibTVFYVhOMFlXNWpaWE1zSUd0dWJrbHVaR1Y0WlhOOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnY21WemRXeDBjeUE5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0hCeWIyMXBjMlZ6S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR3R1YmxKbGN6b2dTMjV1VW1WemRXeDBJRDBnZTF4dUlDQWdJQ0FnSUNCcmJtNUVhWE4wWVc1alpYTTZJRzVsZHlCQmNuSmhlU2gyWVd4MVpYTmJNRjB1YkdWdVozUm9LUzVtYVd4c0tHNTFiR3dwTG0xaGNDZ29LU0E5UGlCdVpYY2dRWEp5WVhrOGJuVnRZbVZ5UGlodVRtVnBaMmhpYjNWeWN5a3VabWxzYkNnNU9UazVPU2twTEZ4dUlDQWdJQ0FnSUNCcmJtNUpibVJsZUdWek9pQnVaWGNnUVhKeVlYa29kbUZzZFdWeld6QmRMbXhsYm1kMGFDa3VabWxzYkNodWRXeHNLUzV0WVhBb0tDa2dQVDRnYm1WM0lFRnljbUY1UEc1MWJXSmxjajRvYms1bGFXZG9ZbTkxY25NcExtWnBiR3dvTFRFcEtYMDdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpsY3lCdlppQnlaWE4xYkhSektTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZG1Gc2RXVnpXekJkTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYWlBOUlEQTdJR29nUENCeVpYTXVhMjV1UkdsemRHRnVZMlZ6VzJsZFB5NXNaVzVuZEdnZ1B6OGdNRHNnS3l0cUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1elpYSjBVMjFoYkd4bGNpaHJibTVTWlhNdWEyNXVSR2x6ZEdGdVkyVnpXMmxkTENCcmJtNVNaWE11YTI1dVNXNWtaWGhsYzF0cFhTd2djbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYVnRxWFN3Z2NtVnpMbXR1YmtsdVpHVjRaWE5iYVYxYmFsMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhMjV1VW1Wek8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJoYzNsdVl5Qm5aWFJUWVcxd2JHVkVhWE4wWVc1alpYTW9kbUZzZFdWek9pQkJjbkpoZVR4aGJubGJYVDRzWEc0Z0lDQWdJQ0JtYms1aGJXVnpPaUJMYm05M2JrMWxkSEpwWTNOYlhTd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOVcxMGdQU0JiWFN3Z2QyVnBaMmgwY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJQ0FnSUNCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkRvZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrVlZRMHhKUkVWQlRpazZJRkJ5YjIxcGMyVThSbXh2WVhRek1rRnljbUY1UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwYUhKbGMyaHZiR1JYYjNKclpYSnpJRDBnYm1WM0lFRnljbUY1S0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1M1bWFXeHNLRzUxYkd3cFhHNGdJQ0FnSUNBZ0lDNXRZWEFvS0NrZ1BUNGdibVYzSUZkdmNtdGxjaWh1WlhjZ1ZWSk1LQ2N1TDNOd1lYSnpaUzF0WVhSeWFYZ3RkR2h5WlhOb2IyeGtMWGR2Y210bGNpY3NJR2x0Y0c5eWRDNXRaWFJoTG5WeWJDa3BLVHRjYmx4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRjBVMmw2WlNBOUlIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0tpQW9kbUZzZFdWeld6QmRMbXhsYm1kMGFDQXRJREVwSUM4Z01qdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyaDFibXRUYVhwbElEMGdUV0YwYUM1bWJHOXZjaWh0WVhSVGFYcGxJQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhoVFlXMXdiR1ZUYVhwbElEMGdNVjh3TURCZk1EQXdPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpZVzF3YkdWVGFYTmxJRDBnVFdGMGFDNXRZWGdvVFdGMGFDNXRhVzRvYldGMFUybDZaU0F2SURFd01EQXNJRzFoZUZOaGJYQnNaVk5wZW1VcExDQk5ZWFJvTG0xcGJpaHRZWFJUYVhwbExDQnRZWGhUWVcxd2JHVlRhWHBsS1NrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhSbGMzUlRaWFJUYVhwbFVHVnlWMjl5YTJWeUlEMGdUV0YwYUM1bWJHOXZjaWh6WVcxd2JHVlRhWE5sSUM4Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMFVISnZiV2x6WlhNZ1BTQnVaWGNnUVhKeVlYazhVSEp2YldselpUeDdaR2x6ZEdGdVkyVTZJRVpzYjJGME16SkJjbkpoZVgwK1BpaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzVjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVdSNElEMGdNRHNnYVdSNElEd2dkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUTdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQWdJQ0FnZEZCeWIyMXBjMlZ6VzJsa2VGMGdQU0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlZkdmNtdGxjaXdnY21WcVpXTjBWMjl5YTJWeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkRWxrZUNBOUlHbGtlQ0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnVaRWxrZUNBOUlHbGtlQ0E5UFQwZ2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RZ0xTQXhJRDhnYldGMFUybDZaU0E2SUNocFpIZ2dLeUF4S1NBcUlHTm9kVzVyVTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtVnphRzlzWkZkdmNtdGxjbk5iYVdSNFhTNXdiM04wVFdWemMyRm5aU2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbGN6b2dkbUZzZFdWekxDQnpkR0Z5ZEVsa2VDd2daVzVrU1dSNExDQnpZVzF3YkdWTVpXNW5kR2c2SUhSbGMzUlRaWFJUYVhwbFVHVnlWMjl5YTJWeUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWJrNWhiV1Z6TENCdmNIUnpMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISmxjMmh2YkdSWGIzSnJaWEp6VzJsa2VGMHViMjV0WlhOellXZGxJRDBnS0h0a1lYUmhPaUI3WlhKeWIzSXNJR1JwYzNSaGJtTmxmWDBwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrVjI5eWEyVnljMXRwWkhoZExuUmxjbTFwYm1GMFpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWlhKeWIzSXBJSEpsYW1WamRGZHZjbXRsY2lobGNuSnZjaWs3SUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE52YkhabFYyOXlhMlZ5S0h0a2FYTjBZVzVqWlgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzVnNkSE1nUFNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNoMFVISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWRXeHNVMmw2WlNBOUlISmxjM1ZzZEhNdWNtVmtkV05sS0NoaFkyTXNJSFpoYkNrZ1BUNGdZV05qSUNzZ2RtRnNMbVJwYzNSaGJtTmxMbXhsYm1kMGFDd2dNQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JwYzNSaGJtTmxJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2htZFd4c1UybDZaU2s3WEc0Z0lDQWdJQ0FnSUd4bGRDQnZabVp6WlhRZ1BTQXdPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhKbGN5QnZaaUJ5WlhOMWJIUnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1pHbHpkR0Z1WTJVdWMyVjBLSEpsY3k1a2FYTjBZVzVqWlN3Z2IyWm1jMlYwS1R0Y2JpQWdJQ0FnSUNBZ0lDQnZabVp6WlhRZ0t6MGdjbVZ6TG1ScGMzUmhibU5sTG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCa2FYTjBZVzVqWlM1emIzSjBLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdScGMzUmhibU5sTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlNrZ2UxeHVJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUlhiM0pyWlhKelB5NW1iM0pGWVdOb0tDaDNLU0E5UGlCM1B5NTBaWEp0YVc1aGRHVW9LU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1WlhKeWIzSW9aU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JteHZZWFF6TWtGeWNtRjVLREVwTG1acGJHd29NQzQxS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3Y21sMllYUmxJR0Z6ZVc1aklHZGxkRTFwYm1sdFlXeFVhSEpsYzJodmJHUW9kbUZzZFdWek9pQkJjbkpoZVR4aGJubGJYVDRzWEc0Z0lDQWdJQ0JtYms1aGJXVnpPaUJMYm05M2JrMWxkSEpwWTNOYlhTd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOVcxMGdQU0JiWFN3Z2QyVnBaMmgwY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJQ0FnSUNCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkRvZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrVlZRMHhKUkVWQlRpa2dlMXh1SUNBZ0lDQWdMeTlYWlNCdVpXVmtJSFJ2SUdOaGJHTjFiR0YwWlNCMGFHVWdiV2x1YVcxaGJDQjBhSEpsYzJodmJHUWdabWx5YzNRc1hHNGdJQ0FnSUNBdkwybHVJRzl5WkdWeUlIUnZJR2RsZENCdFlYUnlhWGdnYzNWamFDQjBhR0YwSUdsMElHUnZaWE1nYm05MElHVjRZMlZsWkNCMGFHVWdiV0Y0YVcxMWJTQnphWHBsSUc5bUlERkhRbHh1SUNBZ0lDQWdMeTkzWlNCb1lYWmxJRE1nY21WMGRYSnVJR0Z5Y21GNWN5d2daV0ZqYUNBMElHSnBkR1Z6SUhCbGNpQmxiR1Z0Wlc1MExDQnpieUJwWmlCMGFHVWdiV0Y0YVcxMWJTQnphWHBsSUc5bUlIUm9aU0J0WVhSeWFYZ2dhWE1nTVVkQ0xGeHVJQ0FnSUNBZ1kyOXVjM1FnYldGNFUzQmhjbk5sVFdGMGNtbDRVMmw2WlNBOUlEY3dYekF3TUY4d01EQTdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSVGFYcGxJRDBnZG1Gc2RXVnpMbXhsYm1kMGFDQXFJQ2gyWVd4MVpYTXViR1Z1WjNSb0lDMGdNU2tnTHlBeU8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa2FYTjBZVzVqWlNBOUlHRjNZV2wwSUhSb2FYTXVaMlYwVTJGdGNHeGxSR2x6ZEdGdVkyVnpLSFpoYkhWbGN5d2dabTVPWVcxbGN5d2diM0IwY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWNtRmpkR2x2YmtsdVpHVjRJRDBnVFdGMGFDNW1iRzl2Y2lodFlYaFRjR0Z5YzJWTllYUnlhWGhUYVhwbElDOGdiV0YwVTJsNlpTQXFJR1JwYzNSaGJtTmxMbXhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElIUm9jbVZ6YUc5c1pDQTlJREVnTFNCa2FYTjBZVzVqWlZ0bWNtRmpkR2x2YmtsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnTHk4Z2RHaHlaWE5vYjJ4a0lEMGdUV0YwYUM1dFlYZ29kR2h5WlhOb2IyeGtMQ0F3TGpNcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHlaWE5vYjJ4a08xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdNQzQxTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QnpkR0YwYVdNZ1kyRnNZMU41Ym1NOFZENG9YRzRnSUNBZ0lDQjJZV3gxWlhNNklFRnljbUY1UEZRK0lId2dRWEp5WVhsTWFXdGxQRlErTENCbWJrNWhiV1U2SUV0dWIzZHVUV1YwY21samN5d2daR2x6ZEdGdVkyVkdiam9nUm5WdVkzUnBiMjRzSUhSb2NtVnphRzlzWkRvZ2JuVnRZbVZ5WEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnBPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYWpvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR052Ym5OMElHUnBjM1JoYm1ObGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUd4bGRDQmpiblFnUFNBd08xeHVJQ0FnSUNBZ2JHVjBJRzFwSUQwZ01EdGNiaUFnSUNBZ0lHeGxkQ0J0YWlBOUlEQTdYRzRnSUNBZ0lDQmpiMjV6ZENCbWRXeHNVMmw2WlNBOUlIWmhiSFZsY3k1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6TG14bGJtZDBhQ0F0SURFcElDOGdNanRjYmlBZ0lDQWdJSGRvYVd4bElDaGpiblFnUENCbWRXeHNVMmw2WlNrZ2UxeHVJQ0FnSUNBZ0lDQXZMMk52Ym5OMElIWmhiSFZsSUQwZ2MyVnhNVXhwYzNSYmJXbGRJQ1ltSUhObGNURk1hWE4wVzIxcVhTQS9JR2hoYlcxcGJtY29jMlZ4TVV4cGMzUmJiV2xkTENCelpYRXhUR2x6ZEZ0dGFsMHBJRG9nTUR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVWdQU0FoYVhOT2FXd29kbUZzZFdWelcyMXBYU2tnSmlZZ0lXbHpUbWxzS0haaGJIVmxjMXR0YWwwcElEOWNiaUFnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaVVp1S0haaGJIVmxjMXR0YVYwc0lIWmhiSFZsYzF0dGFsMHBJRG9nTVR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJsdGFXeGhjbWwwZVNBOUlERWdMU0IyWVd4MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0hOcGJXbHNZWEpwZEhrZ1BqMGdkR2h5WlhOb2IyeGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FTNXdkWE5vS0cxcEtUdGNiaUFnSUNBZ0lDQWdJQ0JxTG5CMWMyZ29iV29wTzF4dUlDQWdJQ0FnSUNBZ0lHUnBjM1JoYm1ObGN5NXdkWE5vS0haaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamJuUXJLenRjYmlBZ0lDQWdJQ0FnYldvckt6dGNiaUFnSUNBZ0lDQWdhV1lnS0cxcUlEMDlQU0IyWVd4MVpYTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYldrckt6dGNiaUFnSUNBZ0lDQWdJQ0J0YWlBOUlHMXBJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCcFFYSnlZWGtnUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2hwS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR3BCY25KaGVTQTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHb3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJWQmNuSmhlU0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvWkdsemRHRnVZMlZ6S1R0Y2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUh0cE9pQnBRWEp5WVhrc0lHbzZJR3BCY25KaGVTd2daR2x6ZEdGdVkyVTZJR1JwYzNSaGJtTmxRWEp5WVhsOU8xeHVJQ0FnSUgxY2JuMWNiaUpkZlE9PSIsImV4cG9ydCBhc3luYyBmdW5jdGlvbiBiaW9MYXlvdXQoY2x1c3Rlciwgc3BhcnNlT2JqZWN0LCB0aHJlc2hvbGQpIHtcbiAgICBjb25zdCBuID0gY2x1c3Rlci5sZW5ndGg7XG4gICAgY29uc3QgaXMgPSBbXTtcbiAgICBjb25zdCBqcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IG47IGorKykge1xuICAgICAgICAgICAgY29uc3QgYSA9IGNsdXN0ZXJbaV07XG4gICAgICAgICAgICBjb25zdCBiID0gY2x1c3RlcltqXTtcbiAgICAgICAgICAgIGlmIChzcGFyc2VPYmplY3RbYV0/LltiXSA+PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICBpcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIGpzLnB1c2goaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdldExheW91dEVtYmVkZGluZ3MoaXMsIGpzLCBjbHVzdGVyKTtcbn1cbmZ1bmN0aW9uIGdldExheW91dEVtYmVkZGluZ3MoaXMsIGpzLCBjbHVzdGVyKSB7XG4gICAgY29uc3QgZW1iZWRYID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKS5tYXAoKCkgPT4gTWF0aC5yYW5kb20oKSAqIDEwKTtcbiAgICBjb25zdCBlbWJlZFkgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApLm1hcCgoKSA9PiBNYXRoLnJhbmRvbSgpICogMTApO1xuICAgIGNvbnN0IGl0ZXJhdGlvbnMgPSAxMDA7XG4gICAgY29uc3QgeFZlbG9jaXRpZXMgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApO1xuICAgIGNvbnN0IHlWZWxvY2l0aWVzID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7IGkrKykge1xuICAgICAgICBjb25zdCB0ZW1wZXJhdHVyZSA9ICgxIC0gaSAvIGl0ZXJhdGlvbnMpO1xuICAgICAgICB4VmVsb2NpdGllcy5maWxsKDApO1xuICAgICAgICB5VmVsb2NpdGllcy5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBpcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gaXNbaWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBqc1tpZHhdO1xuICAgICAgICAgICAgY29uc3QgZHggPSBlbWJlZFhbYV0gLSBlbWJlZFhbYl07XG4gICAgICAgICAgICBjb25zdCBkeSA9IGVtYmVkWVthXSAtIGVtYmVkWVtiXTtcbiAgICAgICAgICAgIC8vICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xuICAgICAgICAgICAgLy8gICBjb25zdCBmYWN0b3IgPSAoZGlzdGFuY2UgLSAxKSAvIGRpc3RhbmNlO1xuICAgICAgICAgICAgLy8gICBjb25zdCBvZmZzZXRYID0gZHggKiBmYWN0b3I7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IG9mZnNldFkgPSBkeSAqIGZhY3RvcjtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkeCkgPj0gMSkge1xuICAgICAgICAgICAgICAgIHhWZWxvY2l0aWVzW2FdIC09IHRlbXBlcmF0dXJlICogZHg7XG4gICAgICAgICAgICAgICAgeFZlbG9jaXRpZXNbYl0gKz0gdGVtcGVyYXR1cmUgKiBkeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkeSkgPj0gMSkge1xuICAgICAgICAgICAgICAgIHlWZWxvY2l0aWVzW2FdIC09IHRlbXBlcmF0dXJlICogZHk7XG4gICAgICAgICAgICAgICAgeVZlbG9jaXRpZXNbYl0gKz0gdGVtcGVyYXR1cmUgKiBkeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICAgZW1iZWRZW2FdICs9IG9mZnNldFkgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgIC8vICAgZW1iZWRZW2JdIC09IG9mZnNldFkgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IHZlY1NpemUgPSBNYXRoLnNxcnQoeFZlbG9jaXRpZXNbaWR4XSAqIHhWZWxvY2l0aWVzW2lkeF0gKyB5VmVsb2NpdGllc1tpZHhdICogeVZlbG9jaXRpZXNbaWR4XSk7XG4gICAgICAgICAgICBpZiAodmVjU2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICBlbWJlZFhbaWR4XSArPSB4VmVsb2NpdGllc1tpZHhdIC8gdmVjU2l6ZSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgICAgIGVtYmVkWVtpZHhdICs9IHlWZWxvY2l0aWVzW2lkeF0gLyB2ZWNTaXplICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gbm9ybWFsaXplXG4gICAgbGV0IG1pblggPSBlbWJlZFhbMF07XG4gICAgbGV0IG1pblkgPSBlbWJlZFlbMF07XG4gICAgbGV0IG1heFggPSBlbWJlZFhbMF07XG4gICAgbGV0IG1heFkgPSBlbWJlZFlbMF07XG4gICAgZm9yIChsZXQgaWR4ID0gMTsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCBlbWJlZFhbaWR4XSk7XG4gICAgICAgIG1pblkgPSBNYXRoLm1pbihtaW5ZLCBlbWJlZFlbaWR4XSk7XG4gICAgICAgIG1heFggPSBNYXRoLm1heChtYXhYLCBlbWJlZFhbaWR4XSk7XG4gICAgICAgIG1heFkgPSBNYXRoLm1heChtYXhZLCBlbWJlZFlbaWR4XSk7XG4gICAgfVxuICAgIGxldCByYW5nZVggPSBtYXhYIC0gbWluWDtcbiAgICBsZXQgcmFuZ2VZID0gbWF4WSAtIG1pblk7XG4gICAgaWYgKHJhbmdlWCA9PT0gMClcbiAgICAgICAgcmFuZ2VYID0gbWF4WDtcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspXG4gICAgICAgIGVtYmVkWFtpZHhdID0gKGVtYmVkWFtpZHhdIC0gbWluWCkgLyByYW5nZVggLyAyICsgMC41O1xuICAgIGlmIChyYW5nZVkgPT09IDApXG4gICAgICAgIHJhbmdlWSA9IG1heFk7XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKVxuICAgICAgICBlbWJlZFlbaWR4XSA9IChlbWJlZFlbaWR4XSAtIG1pblkpIC8gcmFuZ2VZIC8gMiArIDAuNTtcbiAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWW1sdkxXeGhlVzkxZEM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUpwYnkxc1lYbHZkWFF1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlJVRXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3hUUVVGVExFTkJRVU1zVDBGQmFVSXNSVUZCUlN4WlFVRm5ReXhGUVVGRkxGTkJRV2xDTzBsQlEzQkhMRTFCUVUwc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEZWtJc1RVRkJUU3hGUVVGRkxFZEJRV0VzUlVGQlJTeERRVUZETzBsQlEzaENMRTFCUVUwc1JVRkJSU3hIUVVGaExFVkJRVVVzUTBGQlF6dEpRVU40UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRekZDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU55UWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tJc1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hUUVVGVExFVkJRVVU3WjBKQlEzSkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTFnc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTmFPMU5CUTBZN1MwRkRSanRKUVVORUxFOUJRVThzYlVKQlFXMUNMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTTVReXhEUVVGRE8wRkJSVVFzVTBGQlV5eHRRa0ZCYlVJc1EwRkJReXhGUVVGWkxFVkJRVVVzUlVGQldTeEZRVUZGTEU5QlFXbENPMGxCUTNoRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU4wUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRkRVlzVFVGQlRTeFZRVUZWTEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTNaQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROMFFzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNM1JDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVlVGQlZTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTI1RExFMUJRVTBzVjBGQlZ5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU42UXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzQkNMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VJc1MwRkJTeXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdXVUZEZUVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJ4Q0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOc1FpeE5RVUZOTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTJwRExFMUJRVTBzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYWtNc2JVUkJRVzFFTzFsQlEyNUVMRGhEUVVFNFF6dFpRVU01UXl4cFEwRkJhVU03V1VGRGFrTXNhVU5CUVdsRE8xbEJRMnBETEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdaMEpCUTNKQ0xGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU51UXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTndRenRaUVVORUxFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzSkNMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOdVF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dGhRVU53UXp0WlFVTklMSGREUVVGM1F6dFpRVU40UXl4M1EwRkJkME03VTBGRGRrTTdVVUZEUkN4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFpRVU0zUXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKSExFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNSVUZCUlR0blFrRkRaaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUjBGQlJ5eFhRVUZYTEVOQlFVTTdaMEpCUTNoRUxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eEhRVUZITEZkQlFWY3NRMEZCUXp0aFFVTjZSRHRUUVVOR08wdEJRMFk3U1VGRlJDeFpRVUZaTzBsQlExb3NTVUZCU1N4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkNMRWxCUVVrc1NVRkJTU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlRaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRja0lzU1VGQlNTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pDTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRemRETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRia01zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTndRenRKUVVORUxFbEJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRla0lzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVONlFpeEpRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkRPMUZCUTJRc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU5vUWl4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVU3VVVGRE0wTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTNoRUxFbEJRVWtzVFVGQlRTeExRVUZMTEVOQlFVTTdVVUZEWkN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRMmhDTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSVHRSUVVNelF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1RVRkJUU3hIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdTVUZGZUVRc1QwRkJUeXhGUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVYRzVsZUhCdmNuUWdZWE41Ym1NZ1puVnVZM1JwYjI0Z1ltbHZUR0Y1YjNWMEtHTnNkWE4wWlhJNklHNTFiV0psY2x0ZExDQnpjR0Z5YzJWUFltcGxZM1E2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEN3Z2RHaHlaWE5vYjJ4a09pQnVkVzFpWlhJcElIdGNiaUFnWTI5dWMzUWdiaUE5SUdOc2RYTjBaWEl1YkdWdVozUm9PMXh1SUNCamIyNXpkQ0JwY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYW5NNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dianNnYVNzcktTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2tnS3lBeE95QnFJRHdnYmpzZ2Fpc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhJRDBnWTJ4MWMzUmxjbHRwWFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0lnUFNCamJIVnpkR1Z5VzJwZE8xeHVJQ0FnSUNBZ2FXWWdLSE53WVhKelpVOWlhbVZqZEZ0aFhUOHVXMkpkSUQ0OUlIUm9jbVZ6YUc5c1pDa2dlMXh1SUNBZ0lDQWdJQ0JwY3k1d2RYTm9LR2twTzF4dUlDQWdJQ0FnSUNCcWN5NXdkWE5vS0dvcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnWjJWMFRHRjViM1YwUlcxaVpXUmthVzVuY3locGN5d2dhbk1zSUdOc2RYTjBaWElwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJuWlhSTVlYbHZkWFJGYldKbFpHUnBibWR6S0dsek9pQnVkVzFpWlhKYlhTd2dhbk02SUc1MWJXSmxjbHRkTENCamJIVnpkR1Z5T2lCdWRXMWlaWEpiWFNrZ2UxeHVJQ0JqYjI1emRDQmxiV0psWkZnZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHTnNkWE4wWlhJdWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29LU0E5UGlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nTVRBcE8xeHVJQ0JqYjI1emRDQmxiV0psWkZrZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHTnNkWE4wWlhJdWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29LU0E5UGlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nTVRBcE8xeHVJQ0JqYjI1emRDQnBkR1Z5WVhScGIyNXpJRDBnTVRBd08xeHVJQ0JqYjI1emRDQjRWbVZzYjJOcGRHbGxjeUE5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvWTJ4MWMzUmxjaTVzWlc1bmRHZ3BMbVpwYkd3b01DazdYRzRnSUdOdmJuTjBJSGxXWld4dlkybDBhV1Z6SUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNoamJIVnpkR1Z5TG14bGJtZDBhQ2t1Wm1sc2JDZ3dLVHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnBkR1Z5WVhScGIyNXpPeUJwS3lzcElIdGNiaUFnSUNCamIyNXpkQ0IwWlcxd1pYSmhkSFZ5WlNBOUlDZ3hJQzBnYVNBdklHbDBaWEpoZEdsdmJuTXBPMXh1SUNBZ0lIaFdaV3h2WTJsMGFXVnpMbVpwYkd3b01DazdYRzRnSUNBZ2VWWmxiRzlqYVhScFpYTXVabWxzYkNnd0tUdGNiaUFnSUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F3T3lCcFpIZ2dQQ0JwY3k1c1pXNW5kR2c3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhJRDBnYVhOYmFXUjRYVHRjYmlBZ0lDQWdJR052Ym5OMElHSWdQU0JxYzF0cFpIaGRPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pIZ2dQU0JsYldKbFpGaGJZVjBnTFNCbGJXSmxaRmhiWWwwN1hHNGdJQ0FnSUNCamIyNXpkQ0JrZVNBOUlHVnRZbVZrV1Z0aFhTQXRJR1Z0WW1Wa1dWdGlYVHRjYmlBZ0lDQWdJQzh2SUNBZ1kyOXVjM1FnWkdsemRHRnVZMlVnUFNCTllYUm9Mbk54Y25Rb1pIZ2dLaUJrZUNBcklHUjVJQ29nWkhrcE8xeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1emRDQm1ZV04wYjNJZ1BTQW9aR2x6ZEdGdVkyVWdMU0F4S1NBdklHUnBjM1JoYm1ObE8xeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1emRDQnZabVp6WlhSWUlEMGdaSGdnS2lCbVlXTjBiM0k3WEc0Z0lDQWdJQ0F2THlBZ0lHTnZibk4wSUc5bVpuTmxkRmtnUFNCa2VTQXFJR1poWTNSdmNqdGNiaUFnSUNBZ0lHbG1JQ2hOWVhSb0xtRmljeWhrZUNrZ1BqMGdNU2tnZTF4dUlDQWdJQ0FnSUNCNFZtVnNiMk5wZEdsbGMxdGhYU0F0UFNCMFpXMXdaWEpoZEhWeVpTQXFJR1I0TzF4dUlDQWdJQ0FnSUNCNFZtVnNiMk5wZEdsbGMxdGlYU0FyUFNCMFpXMXdaWEpoZEhWeVpTQXFJR1I0TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tFMWhkR2d1WVdKektHUjVLU0ErUFNBeEtTQjdYRzRnSUNBZ0lDQWdJSGxXWld4dlkybDBhV1Z6VzJGZElDMDlJSFJsYlhCbGNtRjBkWEpsSUNvZ1pIazdYRzRnSUNBZ0lDQWdJSGxXWld4dlkybDBhV1Z6VzJKZElDczlJSFJsYlhCbGNtRjBkWEpsSUNvZ1pIazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0x5OGdJQ0JsYldKbFpGbGJZVjBnS3owZ2IyWm1jMlYwV1NBcUlIUmxiWEJsY21GMGRYSmxPMXh1SUNBZ0lDOHZJQ0FnWlcxaVpXUlpXMkpkSUMwOUlHOW1abk5sZEZrZ0tpQjBaVzF3WlhKaGRIVnlaVHRjYmlBZ0lDQjlYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FXUjRJRDBnTURzZ2FXUjRJRHdnWTJ4MWMzUmxjaTVzWlc1bmRHZzdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMlpXTlRhWHBsSUQwZ1RXRjBhQzV6Y1hKMEtIaFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0tpQjRWbVZzYjJOcGRHbGxjMXRwWkhoZElDc2dlVlpsYkc5amFYUnBaWE5iYVdSNFhTQXFJSGxXWld4dlkybDBhV1Z6VzJsa2VGMHBPMXh1SUNBZ0lDQWdhV1lnS0habFkxTnBlbVVnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dGdHBaSGhkSUNzOUlIaFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0x5QjJaV05UYVhwbElDb2dkR1Z0Y0dWeVlYUjFjbVU3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXVnRwWkhoZElDczlJSGxXWld4dlkybDBhV1Z6VzJsa2VGMGdMeUIyWldOVGFYcGxJQ29nZEdWdGNHVnlZWFIxY21VN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5OGdibTl5YldGc2FYcGxYRzRnSUd4bGRDQnRhVzVZSUQwZ1pXMWlaV1JZV3pCZE8xeHVJQ0JzWlhRZ2JXbHVXU0E5SUdWdFltVmtXVnN3WFR0Y2JpQWdiR1YwSUcxaGVGZ2dQU0JsYldKbFpGaGJNRjA3WEc0Z0lHeGxkQ0J0WVhoWklEMGdaVzFpWldSWld6QmRPMXh1SUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F4T3lCcFpIZ2dQQ0JqYkhWemRHVnlMbXhsYm1kMGFEc2dhV1I0S3lzcElIdGNiaUFnSUNCdGFXNVlJRDBnVFdGMGFDNXRhVzRvYldsdVdDd2daVzFpWldSWVcybGtlRjBwTzF4dUlDQWdJRzFwYmxrZ1BTQk5ZWFJvTG0xcGJpaHRhVzVaTENCbGJXSmxaRmxiYVdSNFhTazdYRzRnSUNBZ2JXRjRXQ0E5SUUxaGRHZ3ViV0Y0S0cxaGVGZ3NJR1Z0WW1Wa1dGdHBaSGhkS1R0Y2JpQWdJQ0J0WVhoWklEMGdUV0YwYUM1dFlYZ29iV0Y0V1N3Z1pXMWlaV1JaVzJsa2VGMHBPMXh1SUNCOVhHNGdJR3hsZENCeVlXNW5aVmdnUFNCdFlYaFlJQzBnYldsdVdEdGNiaUFnYkdWMElISmhibWRsV1NBOUlHMWhlRmtnTFNCdGFXNVpPMXh1SUNCcFppQW9jbUZ1WjJWWUlEMDlQU0F3S1Z4dUlDQWdJSEpoYm1kbFdDQTlJRzFoZUZnN1hHNGdJR1p2Y2lBb2JHVjBJR2xrZUNBOUlEQTdJR2xrZUNBOElHTnNkWE4wWlhJdWJHVnVaM1JvT3lCcFpIZ3JLeWxjYmlBZ0lDQmxiV0psWkZoYmFXUjRYU0E5SUNobGJXSmxaRmhiYVdSNFhTQXRJRzFwYmxncElDOGdjbUZ1WjJWWUlDOGdNaUFySURBdU5UdGNiaUFnYVdZZ0tISmhibWRsV1NBOVBUMGdNQ2xjYmlBZ0lDQnlZVzVuWlZrZ1BTQnRZWGhaTzF4dUlDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCamJIVnpkR1Z5TG14bGJtZDBhRHNnYVdSNEt5c3BYRzRnSUNBZ1pXMWlaV1JaVzJsa2VGMGdQU0FvWlcxaVpXUlpXMmxrZUYwZ0xTQnRhVzVaS1NBdklISmhibWRsV1NBdklESWdLeUF3TGpVN1hHNWNiaUFnY21WMGRYSnVJSHRsYldKbFpGZ3NJR1Z0WW1Wa1dYMDdYRzU5WEc0aVhYMD0iLCJpbXBvcnQgeyBiaW9MYXlvdXQgfSBmcm9tICcuL2Jpby1sYXlvdXQnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRNQ0xPcHRpb25zID0ge1xuICAgIGV4cGFuZEZhY3RvcjogMixcbiAgICBtYXhJdGVyYXRpb25zOiA1LFxuICAgIGluZmxhdGVGYWN0b3I6IDIsXG4gICAgbXVsdEZhY3RvcjogMSxcbn07XG5leHBvcnQgY2xhc3MgTUNMU3BhcnNlUmVkdWNlciB7XG4gICAgY29uc3RydWN0b3Iob3B0cyA9IHt9KSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB7IC4uLmRlZmF1bHRNQ0xPcHRpb25zLCAuLi5vcHRzIH07XG4gICAgfVxuICAgIGFzeW5jIHRyYW5zZm9ybShzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIC8vIHRlc3RXb3JrZXJNdWx0aXBseSgpO1xuICAgICAgICAvLyByZXR1cm4gbmV3IEludDMyQXJyYXkoblJvd3MpO1xuICAgICAgICBsZXQgc3BhcnNlT2JqZWN0ID0gdGhpcy50b09iamVjdEZvcm0oc3BhcnNlTWF0cml4KTtcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMubWF4SXRlcmF0aW9ucyA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTG9vcHMoc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9vcHRpb25zLm1heEl0ZXJhdGlvbnM7IGkrKykge1xuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdCA9IHRoaXMuZXhwYW5kKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5mbGF0ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgICAgIHRoaXMubm9ybWFsaXplKHNwYXJzZU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjbHVzdGVycywgaXMsIGpzIH0gPSB0aGlzLmFzc2lnbkNsdXN0ZXJzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICB0aGlzLmNvcnJlY3RDbHVzdGVycyhjbHVzdGVycyk7XG4gICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCB0aGlzLmxheW91dChjbHVzdGVycywgc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgIHJldHVybiB7IGNsdXN0ZXJzLCBlbWJlZFg6IGVtYmVkZGluZ3MuZW1iZWRYLCBlbWJlZFk6IGVtYmVkZGluZ3MuZW1iZWRZLCBpcywganMgfTtcbiAgICB9XG4gICAgY29ycmVjdENsdXN0ZXJzKGNsdXN0ZXJzKSB7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJTaXplTWFwID0ge307XG4gICAgICAgIGZvciAoY29uc3QgY2x1c3RlciBvZiBjbHVzdGVycykge1xuICAgICAgICAgICAgaWYgKCFjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSlcbiAgICAgICAgICAgICAgICBjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSA9IDA7XG4gICAgICAgICAgICBjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSsrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvcnRlZEluZGV4ZXMgPSBPYmplY3Qua2V5cyhjbHVzdGVyU2l6ZU1hcCkubWFwKE51bWJlcikuc29ydCgoYSwgYikgPT4gY2x1c3RlclNpemVNYXBbYV0gLSBjbHVzdGVyU2l6ZU1hcFtiXSk7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJNYXAgPSB7fTtcbiAgICAgICAgc29ydGVkSW5kZXhlcy5mb3JFYWNoKChjbHVzdGVySWR4LCBpKSA9PiBjbHVzdGVyTWFwW2NsdXN0ZXJJZHhdID0gaSArIDEpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgY2x1c3RlcnNbaV0gPSBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXTtcbiAgICAgICAgLy8gbGV0IGN1ckNsdXN0ZXIgPSAxO1xuICAgICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vICAgaWYgKCFjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXSkge1xuICAgICAgICAvLyAgICAgY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV0gPSBjdXJDbHVzdGVyO1xuICAgICAgICAvLyAgICAgY2x1c3RlcnNbaV0gPSBjdXJDbHVzdGVyO1xuICAgICAgICAvLyAgICAgY3VyQ2x1c3RlcisrO1xuICAgICAgICAvLyAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfVxuICAgIH1cbiAgICBhc3luYyBsYXlvdXQoY2x1c3RlcnMsIHNwYXJzZU1hdHJpeCwgblJvd3MpIHtcbiAgICAgICAgY29uc3QgZW1iZWRYID0gbmV3IEZsb2F0MzJBcnJheShuUm93cykuZmlsbCgwKTtcbiAgICAgICAgY29uc3QgZW1iZWRZID0gbmV3IEZsb2F0MzJBcnJheShuUm93cykuZmlsbCgwKTtcbiAgICAgICAgY29uc3QgY2x1c3Rlck1hcCA9IHt9O1xuICAgICAgICBjbHVzdGVycy5mb3JFYWNoKChjbHVzdGVyLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNsdXN0ZXJNYXBbY2x1c3Rlcl0pXG4gICAgICAgICAgICAgICAgY2x1c3Rlck1hcFtjbHVzdGVyXSA9IFtdO1xuICAgICAgICAgICAgY2x1c3Rlck1hcFtjbHVzdGVyXS5wdXNoKGkpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY29uc3QgbkNsdXN0ZXJzID0gT2JqZWN0LmtleXMoY2x1c3Rlck1hcCkubGVuZ3RoO1xuICAgICAgICAvLyBjb25zdCBwZXJSb3cgPSBNYXRoLmZsb29yKE1hdGguc3FydChuQ2x1c3RlcnMpKTtcbiAgICAgICAgbGV0IGNsdXN0ZXJOdW0gPSAwO1xuICAgICAgICBjb25zdCBzb3J0ZWRDbHVzdGVyTmFtZXMgPSBPYmplY3Qua2V5cyhjbHVzdGVyTWFwKTtcbiAgICAgICAgc29ydGVkQ2x1c3Rlck5hbWVzLnNvcnQoKGEsIGIpID0+IGNsdXN0ZXJNYXBbYl0ubGVuZ3RoIC0gY2x1c3Rlck1hcFthXS5sZW5ndGgpO1xuICAgICAgICBsZXQgcGVyUm93ID0gNjtcbiAgICAgICAgbGV0IHlPZmZzZXQgPSAwO1xuICAgICAgICBjb25zdCBsYXlvdXRTaXplID0gNTtcbiAgICAgICAgZm9yIChjb25zdCBjbHVzdGVyTmFtZSBvZiBzb3J0ZWRDbHVzdGVyTmFtZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsdXN0ZXIgPSBjbHVzdGVyTWFwW2NsdXN0ZXJOYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCBiaW9MYXlvdXQoY2x1c3Rlciwgc3BhcnNlTWF0cml4LCAwLjAwMSk7XG4gICAgICAgICAgICBpZiAoY2x1c3Rlck51bSA9PT0gTWF0aC5jZWlsKHBlclJvdyAvIDEuNSkpIHtcbiAgICAgICAgICAgICAgICBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgICAgICAgICB5T2Zmc2V0ICs9IGxheW91dFNpemUgLyBwZXJSb3c7XG4gICAgICAgICAgICAgICAgcGVyUm93ID0gTWF0aC5jZWlsKHBlclJvdyAqIDEuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvZmZzZXRYID0gKChjbHVzdGVyTnVtICUgcGVyUm93KSAqIGxheW91dFNpemUgLyBwZXJSb3cpICogMS41O1xuICAgICAgICAgICAgLy8gY29uc3Qgb2Zmc2V0WSA9IE1hdGguZmxvb3IoY2x1c3Rlck51bSAvIHBlclJvdykgKiAyO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbWJlZGRpbmdzLmVtYmVkWC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGVtYmVkWFtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRYW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIG9mZnNldFg7XG4gICAgICAgICAgICAgICAgZW1iZWRZW2NsdXN0ZXJbaV1dID0gZW1iZWRkaW5ncy5lbWJlZFlbaV0gKiBsYXlvdXRTaXplIC8gcGVyUm93ICsgeU9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xuICAgIH1cbiAgICBtZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBpLCBqKSB7XG4gICAgICAgIGNvbnN0IGlDbHVzdGVyID0gY2x1c3RlcnNbaV07XG4gICAgICAgIGNvbnN0IGpDbHVzdGVyID0gY2x1c3RlcnNbal07XG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgY2x1c3RlcnMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyc1trXSA9PT0gakNsdXN0ZXIpXG4gICAgICAgICAgICAgICAgY2x1c3RlcnNba10gPSBpQ2x1c3RlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3NpZ25DbHVzdGVycyhzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3QgaXMgPSBbXTtcbiAgICAgICAgY29uc3QganMgPSBbXTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJzID0gbmV3IEFycmF5KG5Sb3dzKS5maWxsKC0xKTtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHNwYXJzZU1hdHJpeCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXhbaV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQoc3BhcnNlTWF0cml4W2ldW2pdICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIHNwYXJzZU1hdHJpeFtpXVtqXSAhPT0gTnVtYmVyKGkpICYmIE51bWJlcihqKSA+IE51bWJlcihpKSkge1xuICAgICAgICAgICAgICAgICAgICBpcy5wdXNoKE51bWJlcihpKSk7XG4gICAgICAgICAgICAgICAgICAgIGpzLnB1c2goTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IC0xICYmIGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gY2x1c3RlcnNbTnVtYmVyKGopXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lcmdlQ2x1c3RlcnMoY2x1c3RlcnMsIE51bWJlcihpKSwgTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJzW051bWJlcihpKV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGopXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyc1tOdW1iZXIoaildO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGkpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaildID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNbaV0gPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjbHVzdGVycywgaXM6IG5ldyBVaW50MzJBcnJheShpcyksIGpzOiBuZXcgVWludDMyQXJyYXkoanMpIH07XG4gICAgfVxuICAgIHRvT2JqZWN0Rm9ybShzcGFyc2VNYXRyaXgpIHtcbiAgICAgICAgY29uc3Qgc3BhcnNlT2JqZWN0ID0ge307XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhcnNlTWF0cml4LmkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dW3NwYXJzZU1hdHJpeC5qW2ldXSA9IDEgLSBzcGFyc2VNYXRyaXguZGlzdGFuY2VbaV07XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXVtzcGFyc2VNYXRyaXguaVtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcGFyc2VPYmplY3Q7XG4gICAgfVxuICAgIGFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtpXSA9IHRoaXMuX29wdGlvbnMubXVsdEZhY3RvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3JtYWxpemUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHN1bSArPSByb3dbal07XG4gICAgICAgICAgICBpZiAoc3VtID09PSAwKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdIC89IHN1bTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBleHBhbmQoc3BhcnNlT2JqZWN0LCBuUm93cykge1xuICAgICAgICBjb25zdCBleHBhbmRlZE9iamVjdCA9IHt9O1xuICAgICAgICBjb25zdCBvcmRlciA9IE1hdGguZmxvb3IoTWF0aC5tYXgoTWF0aC5sb2cxMChuUm93cyksIDIpKSArIDE7XG4gICAgICAgIGNvbnN0IG1pbk9yZGVyID0gTWF0aC5wb3coMTAsIG9yZGVyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIC8vIGNvbnN0IHJvdyA9IHNwYXJzZU9iamVjdFtpXTtcbiAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaTsgaiA8IG5Sb3dzOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXT8uW2pdKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaik7IC8vcHJ1bmluZyBzdGVwXG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQodmFsICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldW2pdID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWV4cGFuZGVkT2JqZWN0W2pdKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal1baV0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBhbmRlZE9iamVjdDtcbiAgICB9XG4gICAgLy8gcHJpdmF0ZSBwcnVuZShyb3c6IFNwYXJzZU1hdHJpeE9iamVjdFtudW1iZXJdKSB7XG4gICAgLy8gfVxuICAgIGluZmxhdGUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1bal0gPSBNYXRoLnBvdyhzcGFyc2VPYmplY3RbaV1bal0sIHRoaXMuX29wdGlvbnMuaW5mbGF0ZUZhY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0RXhwYW5kVmFsdWUoc3BhcnNlT2JqZWN0LCBpLCBqKSB7XG4gICAgICAgIGxldCB2YWwgPSAwO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtpXSA/PyB7fSk7XG4gICAgICAgIGNvbnN0IG90aGVySW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtqXSA/PyB7fSk7XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBjdXJyZW50SW5kZXhlcykge1xuICAgICAgICAgICAgaWYgKG90aGVySW5kZXhlcy5pbmNsdWRlcyhrKSlcbiAgICAgICAgICAgICAgICB2YWwgKz0gc3BhcnNlT2JqZWN0W2ldW2tdICogc3BhcnNlT2JqZWN0W2pdW2tdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGeVkyOTJMV05zZFhOMFpYSXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKdFlYSmpiM1l0WTJ4MWMzUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGRFFTeFBRVUZQTEVWQlFVTXNVMEZCVXl4RlFVRkRMRTFCUVUwc1kwRkJZeXhEUVVGRE8wRkJSM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MR2xDUVVGcFFpeEhRVUZsTzBsQlF6TkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wbEJRMllzWVVGQllTeEZRVUZGTEVOQlFVTTdTVUZEYUVJc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNWVUZCVlN4RlFVRkZMRU5CUVVNN1EwRkRaQ3hEUVVGRE8wRkJSVVlzVFVGQlRTeFBRVUZQTEdkQ1FVRm5RanRKUVVjelFpeFpRVUZaTEU5QlFUUkNMRVZCUVVVN1VVRkRlRU1zU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4RlFVRkRMRWRCUVVjc2FVSkJRV2xDTEVWQlFVVXNSMEZCUnl4SlFVRkpMRVZCUVVNc1EwRkJRenRKUVVOc1JDeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhaUVVGblF5eEZRVUZGTEV0QlFXRTdVVUZEY0VVc2QwSkJRWGRDTzFGQlEzaENMR2REUVVGblF6dFJRVU5vUXl4SlFVRkpMRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUTI1RUxFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhGUVVGRk8xbEJRMjVETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1dVRkJXU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEyNURMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZETjBJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zWVVGQllTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOd1JDeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUTJoRUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1owSkJRek5DTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03WVVGRE9VSTdVMEZEUmp0UlFVTkVMRTFCUVUwc1JVRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNCRkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRMMElzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRjRVVzVDBGQlR5eEZRVUZETEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZETEVOQlFVTTdTVUZEYkVZc1EwRkJRenRKUVVWUExHVkJRV1VzUTBGQlF5eFJRVUZyUWp0UlFVTjRReXhOUVVGTkxHTkJRV01zUjBGQk1FSXNSVUZCUlN4RFFVRkRPMUZCUTJwRUxFdEJRVXNzVFVGQlRTeFBRVUZQTEVsQlFVa3NVVUZCVVN4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRPMmRDUVVNeFFpeGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRemxDTEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRE8xTkJRek5DTzFGQlEwUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzQklMRTFCUVUwc1ZVRkJWU3hIUVVFd1FpeEZRVUZGTEVOQlFVTTdVVUZETjBNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVrVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRk8xbEJRM1JETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRlRU1zYzBKQlFYTkNPMUZCUTNSQ0xEaERRVUU0UXp0UlFVTTVReXh2UTBGQmIwTTdVVUZEY0VNc05FTkJRVFJETzFGQlF6VkRMR2REUVVGblF6dFJRVU5vUXl4dlFrRkJiMEk3VVVGRGNFSXNZVUZCWVR0UlFVTmlMRFpEUVVFMlF6dFJRVU0zUXl4TlFVRk5PMUZCUTA0c1NVRkJTVHRKUVVOT0xFTkJRVU03U1VGRlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVd0Q0xFVkJRVVVzV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUTNSR0xFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETDBNc1RVRkJUU3hWUVVGVkxFZEJRVFJDTEVWQlFVVXNRMEZCUXp0UlFVTXZReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRE8yZENRVU4wUWl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlF6TkNMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEU0N4dlJFRkJiMFE3VVVGRGNFUXNiVVJCUVcxRU8xRkJRMjVFTEVsQlFVa3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOdVFpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRia1FzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZETjBZc1NVRkJTU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJXWXNTVUZCU1N4UFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOeVFpeExRVUZMTEUxQlFVMHNWMEZCVnl4SlFVRkpMR3RDUVVGclFpeEZRVUZGTzFsQlF6VkRMRTFCUVUwc1QwRkJUeXhIUVVGSExGVkJRVlVzUTBGQlF5eFhRVUZyUWl4RFFVRkZMRU5CUVVNN1dVRkRhRVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnFSU3hKUVVGSkxGVkJRVlVzUzBGQlN5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZETVVNc1ZVRkJWU3hIUVVGSExFTkJRVU1zUTBGQlF6dG5Ra0ZEWml4UFFVRlBMRWxCUVVrc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF6dG5Ra0ZETDBJc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8yRkJRMnhETzFsQlEwUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGRExGVkJRVlVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzFsQlEzQkZMSFZFUVVGMVJEdFpRVVYyUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTJwRUxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1IwRkJSeXhOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETzJkQ1FVTXhSU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF6dGhRVU16UlR0WlFVTkVMRlZCUVZVc1JVRkJSU3hEUVVGRE8xTkJRMlE3VVVGRFJDeFBRVUZQTEVWQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJReXhEUVVGRE8wbEJRekZDTEVOQlFVTTdTVUZGVHl4aFFVRmhMRU5CUVVNc1VVRkJhMElzUlVGQlJTeERRVUZUTEVWQlFVVXNRMEZCVXp0UlFVTTFSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkROMElzVFVGQlRTeFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemRDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRM2hETEVsQlFVa3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExGRkJRVkU3WjBKQlF6RkNMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTTdVMEZETVVJN1NVRkRTQ3hEUVVGRE8wbEJRMDBzWTBGQll5eERRVUZETEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVOdVJTeEpRVUZKTEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRia0lzVFVGQlRTeEZRVUZGTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU55UXl4TlFVRk5MRkZCUVZFc1IwRkJZU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU55UkN4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVN1dVRkRla01zUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOdVJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEVOQlFWRXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJReXhIUVVGSExGRkJRVkVzUjBGQlJ5eERRVUZETzI5Q1FVTjRSU3haUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRXRCUVVzc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdiMEpCUTNwRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEyNUNMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRMjVDTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHQzUWtGRE5VUXNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czBRa0ZETjBNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOMFJEdDVRa0ZCVFN4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHQzUWtGRGNrTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZETTBNN2VVSkJRVTBzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVTdkMEpCUTNKRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzNsQ1FVRk5PM2RDUVVOTUxGVkJRVlVzUlVGQlJTeERRVUZETzNkQ1FVTmlMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNN2QwSkJRMnBETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTTdjVUpCUTJ4RE8ybENRVU5HTzJGQlEwWTdVMEZEUmp0UlFVTkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzUkRMRWxCUVVrc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOMFFpeFZRVUZWTEVWQlFVY3NRMEZCUXp0blFrRkRaQ3hSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRPMkZCUXpGQ08xTkJRMFk3VVVGRFJDeFBRVUZQTEVWQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVVc1JVRkJSU3hKUVVGSkxGZEJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1NVRkJTU3hYUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNRMEZCUXp0SlFVTjBSU3hEUVVGRE8wbEJSVTBzV1VGQldTeERRVUZETEZsQlFXZERPMUZCUTJ4RUxFMUJRVTBzV1VGQldTeEhRVUY1UXl4RlFVRkZMRU5CUVVNN1VVRkRPVVFzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEZGtNc1dVRkJXU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRiRVlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTnNReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU4yUXl4WlFVRlpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTnVSanRSUVVORUxFOUJRVThzV1VGQldTeERRVUZETzBsQlEzUkNMRU5CUVVNN1NVRkZUeXhSUVVGUkxFTkJRVU1zV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUXpsRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZET1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka0lzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRPMU5CUXk5RE8wbEJRMGdzUTBGQlF6dEpRVVZQTEZOQlFWTXNRMEZCUXl4WlFVRm5RenRSUVVOb1JDeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVTdXVUZEZWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzV1VGQldTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMWxCUTI1RExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTmFMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU03V1VGRGRrSXNTVUZCU1N4SFFVRkhMRXRCUVVzc1EwRkJRenRuUWtGQlJTeFRRVUZUTzFsQlEzaENMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTTdVMEZETTBNN1NVRkRTQ3hEUVVGRE8wbEJSVThzVFVGQlRTeERRVUZETEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVNMVJDeE5RVUZOTEdOQlFXTXNSMEZCZFVJc1JVRkJSU3hEUVVGRE8xRkJRemxETEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNKRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZET1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xGTkJRVk03V1VGRFdDd3JRa0ZCSzBJN1dVRkRMMElzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOMlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVNNVFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTjJRaXhUUVVGVE8yZENRVU5ZTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV003WjBKQlEyNUZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1VVRkJVU3hIUVVGSExFTkJRVU1zUlVGQlJUdHZRa0ZETjBNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenR2UWtGRE0wSXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlEzQkNMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdiMEpCUTNwQ0xHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03YVVKQlF6VkNPMkZCUTBZN1UwRkRSanRSUVVORUxFOUJRVThzWTBGQll5eERRVUZETzBsQlEzaENMRU5CUVVNN1NVRkZSQ3h0UkVGQmJVUTdTVUZGYmtRc1NVRkJTVHRKUVVWSkxFOUJRVThzUTBGQlF5eFpRVUZuUXp0UlFVTTVReXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRGVrTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETzFsQlEyNURMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFOQlF6bEhPMGxCUTBnc1EwRkJRenRKUVVWUExHTkJRV01zUTBGQlF5eFpRVUZuUXl4RlFVRkZMRU5CUVUwc1JVRkJSU3hEUVVGTk8xRkJRM0pGTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOYUxFMUJRVTBzWTBGQll5eEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzV1VGQldTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNoRUxFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NZMEZCWXl4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRekZDTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETzFOQlEyaEZPMUZCUTBRc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMU53WVhKelpVMWhkSEpwZUZKbGMzVnNkSDBnWm5KdmJTQW5MaTR2WkdsemRHRnVZMlV0YldGMGNtbDRMM053WVhKelpTMXRZWFJ5YVhndGMyVnlkbWxqWlNjN1hHNXBiWEJ2Y25RZ2UySnBiMHhoZVc5MWRIMGdabkp2YlNBbkxpOWlhVzh0YkdGNWIzVjBKenRjYm1sdGNHOXlkQ0I3VFVOTVQzQjBhVzl1Y3l3Z1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMGZTQm1jbTl0SUNjdUwzUjVjR1Z6Snp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdSbFptRjFiSFJOUTB4UGNIUnBiMjV6T2lCTlEweFBjSFJwYjI1eklEMGdlMXh1SUNCbGVIQmhibVJHWVdOMGIzSTZJRElzWEc0Z0lHMWhlRWwwWlhKaGRHbHZibk02SURVc1hHNGdJR2x1Wm14aGRHVkdZV04wYjNJNklESXNYRzRnSUcxMWJIUkdZV04wYjNJNklERXNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVFVOTVUzQmhjbk5sVW1Wa2RXTmxjaUI3WEc0Z0lIQnlhWFpoZEdVZ1gyOXdkR2x2Ym5NNklFMURURTl3ZEdsdmJuTTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iM0IwY3pvZ1VHRnlkR2xoYkR4TlEweFBjSFJwYjI1elBpQTlJSHQ5S1NCN1hHNGdJQ0FnZEdocGN5NWZiM0IwYVc5dWN5QTlJSHN1TGk1a1pXWmhkV3gwVFVOTVQzQjBhVzl1Y3l3Z0xpNHViM0IwYzMwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1lYTjVibU1nZEhKaGJuTm1iM0p0S0hOd1lYSnpaVTFoZEhKcGVEb2dVM0JoY25ObFRXRjBjbWw0VW1WemRXeDBMQ0J1VW05M2N6b2diblZ0WW1WeUtTQjdYRzRnSUNBZ0x5OGdkR1Z6ZEZkdmNtdGxjazExYkhScGNHeDVLQ2s3WEc0Z0lDQWdMeThnY21WMGRYSnVJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHNVNiM2R6S1R0Y2JpQWdJQ0JzWlhRZ2MzQmhjbk5sVDJKcVpXTjBJRDBnZEdocGN5NTBiMDlpYW1WamRFWnZjbTBvYzNCaGNuTmxUV0YwY21sNEtUdGNiaUFnSUNCcFppQW9kR2hwY3k1ZmIzQjBhVzl1Y3k1dFlYaEpkR1Z5WVhScGIyNXpJRDRnTUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVoWkdSTWIyOXdjeWh6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0FnSUhSb2FYTXVibTl5YldGc2FYcGxLSE53WVhKelpVOWlhbVZqZENrN1hHNGdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIUm9hWE11WDI5d2RHbHZibk11YldGNFNYUmxjbUYwYVc5dWN6c2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lITndZWEp6WlU5aWFtVmpkQ0E5SUhSb2FYTXVaWGh3WVc1a0tITndZWEp6WlU5aWFtVmpkQ3dnYmxKdmQzTXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtbHVabXhoZEdVb2MzQmhjbk5sVDJKcVpXTjBLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXViM0p0WVd4cGVtVW9jM0JoY25ObFQySnFaV04wS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2UyTnNkWE4wWlhKekxDQnBjeXdnYW5OOUlEMGdkR2hwY3k1aGMzTnBaMjVEYkhWemRHVnljeWh6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0IwYUdsekxtTnZjbkpsWTNSRGJIVnpkR1Z5Y3loamJIVnpkR1Z5Y3lrN1hHNGdJQ0FnWTI5dWMzUWdaVzFpWldSa2FXNW5jeUE5SUdGM1lXbDBJSFJvYVhNdWJHRjViM1YwS0dOc2RYTjBaWEp6TENCemNHRnljMlZQWW1wbFkzUXNJRzVTYjNkektUdGNiaUFnSUNCeVpYUjFjbTRnZTJOc2RYTjBaWEp6TENCbGJXSmxaRmc2SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JZTENCbGJXSmxaRms2SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JaTENCcGN5d2dhbk45TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamIzSnlaV04wUTJ4MWMzUmxjbk1vWTJ4MWMzUmxjbk02SUc1MWJXSmxjbHRkS1NCN1hHNGdJQ0FnWTI5dWMzUWdZMngxYzNSbGNsTnBlbVZOWVhBNklIdGJYem9nYm5WdFltVnlYVG9nYm5WdFltVnlmU0E5SUh0OU8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1kyeDFjM1JsY2lCdlppQmpiSFZ6ZEdWeWN5a2dlMXh1SUNBZ0lDQWdhV1lnS0NGamJIVnpkR1Z5VTJsNlpVMWhjRnRqYkhWemRHVnlYU2xjYmlBZ0lDQWdJQ0FnWTJ4MWMzUmxjbE5wZW1WTllYQmJZMngxYzNSbGNsMGdQU0F3TzF4dUlDQWdJQ0FnWTJ4MWMzUmxjbE5wZW1WTllYQmJZMngxYzNSbGNsMHJLenRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnYzI5eWRHVmtTVzVrWlhobGN5QTlJRTlpYW1WamRDNXJaWGx6S0dOc2RYTjBaWEpUYVhwbFRXRndLUzV0WVhBb1RuVnRZbVZ5S1M1emIzSjBLQ2hoTENCaUtTQTlQaUJqYkhWemRHVnlVMmw2WlUxaGNGdGhYU0F0SUdOc2RYTjBaWEpUYVhwbFRXRndXMkpkS1R0Y2JpQWdJQ0JqYjI1emRDQmpiSFZ6ZEdWeVRXRndPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY24wZ1BTQjdmVHRjYmlBZ0lDQnpiM0owWldSSmJtUmxlR1Z6TG1admNrVmhZMmdvS0dOc2RYTjBaWEpKWkhnc0lHa3BJRDArSUdOc2RYTjBaWEpOWVhCYlkyeDFjM1JsY2tsa2VGMGdQU0JwSUNzZ01TazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmpiSFZ6ZEdWeWN5NXNaVzVuZEdnN0lHa3JLeWxjYmlBZ0lDQWdJR05zZFhOMFpYSnpXMmxkSUQwZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeWMxdHBYVjA3WEc0Z0lDQWdMeThnYkdWMElHTjFja05zZFhOMFpYSWdQU0F4TzF4dUlDQWdJQzh2SUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1kyeDFjM1JsY25NdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQXZMeUFnSUdsbUlDZ2hZMngxYzNSbGNrMWhjRnRqYkhWemRHVnljMXRwWFYwcElIdGNiaUFnSUNBdkx5QWdJQ0FnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5YzF0cFhWMGdQU0JqZFhKRGJIVnpkR1Z5TzF4dUlDQWdJQzh2SUNBZ0lDQmpiSFZ6ZEdWeWMxdHBYU0E5SUdOMWNrTnNkWE4wWlhJN1hHNGdJQ0FnTHk4Z0lDQWdJR04xY2tOc2RYTjBaWElyS3p0Y2JpQWdJQ0F2THlBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnTHk4Z0lDQWdJR05zZFhOMFpYSnpXMmxkSUQwZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeWMxdHBYVjA3WEc0Z0lDQWdMeThnSUNCOVhHNGdJQ0FnTHk4Z2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCc1lYbHZkWFFvWTJ4MWMzUmxjbk02SUc1MWJXSmxjbHRkTENCemNHRnljMlZOWVhSeWFYZzZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ3dnYmxKdmQzTTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lHTnZibk4wSUdWdFltVmtXQ0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvYmxKdmQzTXBMbVpwYkd3b01DazdYRzRnSUNBZ1kyOXVjM1FnWlcxaVpXUlpJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2h1VW05M2N5a3VabWxzYkNnd0tUdGNiaUFnSUNCamIyNXpkQ0JqYkhWemRHVnlUV0Z3T2lCN1cxODZJRzUxYldKbGNsMDZJRzUxYldKbGNsdGRmU0E5SUh0OU8xeHVJQ0FnSUdOc2RYTjBaWEp6TG1admNrVmhZMmdvS0dOc2RYTjBaWElzSUdrcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNnaFkyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVhTbGNiaUFnSUNBZ0lDQWdZMngxYzNSbGNrMWhjRnRqYkhWemRHVnlYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVhTNXdkWE5vS0drcE8xeHVJQ0FnSUgwcE8xeHVJQ0FnSUM4dklHTnZibk4wSUc1RGJIVnpkR1Z5Y3lBOUlFOWlhbVZqZEM1clpYbHpLR05zZFhOMFpYSk5ZWEFwTG14bGJtZDBhRHRjYmlBZ0lDQXZMeUJqYjI1emRDQndaWEpTYjNjZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWMzRnlkQ2h1UTJ4MWMzUmxjbk1wS1R0Y2JpQWdJQ0JzWlhRZ1kyeDFjM1JsY2s1MWJTQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2MyOXlkR1ZrUTJ4MWMzUmxjazVoYldWeklEMGdUMkpxWldOMExtdGxlWE1vWTJ4MWMzUmxjazFoY0NrN1hHNGdJQ0FnYzI5eWRHVmtRMngxYzNSbGNrNWhiV1Z6TG5OdmNuUW9LR0VzSUdJcElEMCtJR05zZFhOMFpYSk5ZWEJiWWlCaGN5QmhibmxkTG14bGJtZDBhQ0F0SUdOc2RYTjBaWEpOWVhCYllTQmhjeUJoYm5sZExteGxibWQwYUNrN1hHNGdJQ0FnYkdWMElIQmxjbEp2ZHlBOUlEWTdYRzVjYmlBZ0lDQnNaWFFnZVU5bVpuTmxkQ0E5SURBN1hHNGdJQ0FnWTI5dWMzUWdiR0Y1YjNWMFUybDZaU0E5SURVN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCamJIVnpkR1Z5VG1GdFpTQnZaaUJ6YjNKMFpXUkRiSFZ6ZEdWeVRtRnRaWE1wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR05zZFhOMFpYSWdQU0JqYkhWemRHVnlUV0Z3VzJOc2RYTjBaWEpPWVcxbElHRnpJR0Z1ZVYwaE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWlcxaVpXUmthVzVuY3lBOUlHRjNZV2wwSUdKcGIweGhlVzkxZENoamJIVnpkR1Z5TENCemNHRnljMlZOWVhSeWFYZ3NJREF1TURBeEtUdGNiaUFnSUNBZ0lHbG1JQ2hqYkhWemRHVnlUblZ0SUQwOVBTQk5ZWFJvTG1ObGFXd29jR1Z5VW05M0lDOGdNUzQxS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeVRuVnRJRDBnTUR0Y2JpQWdJQ0FnSUNBZ2VVOW1abk5sZENBclBTQnNZWGx2ZFhSVGFYcGxJQzhnY0dWeVVtOTNPMXh1SUNBZ0lDQWdJQ0J3WlhKU2IzY2dQU0JOWVhSb0xtTmxhV3dvY0dWeVVtOTNJQ29nTVM0MUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnZibk4wSUc5bVpuTmxkRmdnUFNBb0tHTnNkWE4wWlhKT2RXMGdKU0J3WlhKU2IzY3BJQ29nYkdGNWIzVjBVMmw2WlNBdklIQmxjbEp2ZHlrZ0tpQXhMalU3WEc0Z0lDQWdJQ0F2THlCamIyNXpkQ0J2Wm1aelpYUlpJRDBnVFdGMGFDNW1iRzl2Y2loamJIVnpkR1Z5VG5WdElDOGdjR1Z5VW05M0tTQXFJREk3WEc1Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1pXMWlaV1JrYVc1bmN5NWxiV0psWkZndWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnWlcxaVpXUllXMk5zZFhOMFpYSmJhVjFkSUQwZ1pXMWlaV1JrYVc1bmN5NWxiV0psWkZoYmFWMGdLaUJzWVhsdmRYUlRhWHBsSUM4Z2NHVnlVbTkzSUNzZ2IyWm1jMlYwV0R0Y2JpQWdJQ0FnSUNBZ1pXMWlaV1JaVzJOc2RYTjBaWEpiYVYxZElEMGdaVzFpWldSa2FXNW5jeTVsYldKbFpGbGJhVjBnS2lCc1lYbHZkWFJUYVhwbElDOGdjR1Z5VW05M0lDc2dlVTltWm5ObGREdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnNkWE4wWlhKT2RXMHJLenRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUh0bGJXSmxaRmdzSUdWdFltVmtXWDA3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUcxbGNtZGxRMngxYzNSbGNuTW9ZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRMQ0JwT2lCdWRXMWlaWElzSUdvNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUdOdmJuTjBJR2xEYkhWemRHVnlJRDBnWTJ4MWMzUmxjbk5iYVYwN1hHNGdJQ0FnWTI5dWMzUWdha05zZFhOMFpYSWdQU0JqYkhWemRHVnljMXRxWFR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JySUQwZ01Ec2dheUE4SUdOc2RYTjBaWEp6TG14bGJtZDBhRHNnYXlzcktTQjdYRzRnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjbk5iYTEwZ1BUMDlJR3BEYkhWemRHVnlLVnh1SUNBZ0lDQWdJQ0JqYkhWemRHVnljMXRyWFNBOUlHbERiSFZ6ZEdWeU8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCd2RXSnNhV01nWVhOemFXZHVRMngxYzNSbGNuTW9jM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JzWlhRZ1kyeDFjM1JsY2s1MWJTQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2FYTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnWTI5dWMzUWdhbk02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnYjNKa1pYSWdQU0JOWVhSb0xtWnNiMjl5S0UxaGRHZ3ViV0Y0S0UxaGRHZ3ViRzluTVRBb2JsSnZkM01wTENBeUtTa2dLeUF4TzF4dUlDQWdJR052Ym5OMElHMXBiazl5WkdWeUlEMGdUV0YwYUM1d2IzY29NVEFzSUc5eVpHVnlLVHRjYmlBZ0lDQmpiMjV6ZENCamJIVnpkR1Z5Y3pvZ2JuVnRZbVZ5VzEwZ1BTQnVaWGNnUVhKeVlYa29ibEp2ZDNNcExtWnBiR3dvTFRFcE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FTQnZaaUJQWW1wbFkzUXVhMlY1Y3loemNHRnljMlZOWVhSeWFYZ3BLU0I3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdvZ2IyWWdUMkpxWldOMExtdGxlWE1vYzNCaGNuTmxUV0YwY21sNFcya2dZWE1nWVc1NVhTa3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tFMWhkR2d1Y205MWJtUW9jM0JoY25ObFRXRjBjbWw0VzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwZ0tpQnRhVzVQY21SbGNpa2dMeUJ0YVc1UGNtUmxjaUErSURBZ0ppWmNiaUFnSUNBZ0lDQWdJQ0J6Y0dGeWMyVk5ZWFJ5YVhoYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTQWhQVDBnVG5WdFltVnlLR2twSUNZbUlFNTFiV0psY2locUtTQStJRTUxYldKbGNpaHBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbHpMbkIxYzJnb1RuVnRZbVZ5S0drcEtUdGNiaUFnSUNBZ0lDQWdJQ0JxY3k1d2RYTm9LRTUxYldKbGNpaHFLU2s3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR05zZFhOMFpYSnpXMDUxYldKbGNpaHBLVjBnSVQwOUlDMHhJQ1ltSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwZ0lUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyeDFjM1JsY25OYlRuVnRZbVZ5S0drcFhTQWhQVDBnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR29wWFNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXRaWEpuWlVOc2RYTjBaWEp6S0dOc2RYTjBaWEp6TENCT2RXMWlaWElvYVNrc0lFNTFiV0psY2locUtTazdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoamJIVnpkR1Z5YzF0T2RXMWlaWElvYVNsZElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR29wWFNBOUlHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMDdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoamJIVnpkR1Z5YzF0T2RXMWlaWElvYWlsZElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR2twWFNBOUlHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMDdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKT2RXMHJLenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMGdQU0JqYkhWemRHVnlUblZ0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU0E5SUdOc2RYTjBaWEpPZFcwN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHWnZjaUFvYkdWMElHazlNRHNnYVNBOElHTnNkWE4wWlhKekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JwWmlBb1kyeDFjM1JsY25OYmFWMGdQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJR05zZFhOMFpYSk9kVzBnS3lzN1hHNGdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcybGRJRDBnWTJ4MWMzUmxjazUxYlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIdGpiSFZ6ZEdWeWN5d2dhWE02SUc1bGR5QlZhVzUwTXpKQmNuSmhlU2hwY3lrc0lHcHpPaUJ1WlhjZ1ZXbHVkRE15UVhKeVlYa29hbk1wZlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCMGIwOWlhbVZqZEVadmNtMG9jM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFNaWE4xYkhRcE9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUWdlMXh1SUNBZ0lHTnZibk4wSUhOd1lYSnpaVTlpYW1WamREb2dlMXRmT2lCdWRXMWlaWEpkT2lCN1cxODZJRzUxYldKbGNsMDZJRzUxYldKbGNuMTlJRDBnZTMwN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCemNHRnljMlZOWVhSeWFYZ3VhUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z6Y0dGeWMyVlBZbXBsWTNSYmMzQmhjbk5sVFdGMGNtbDRMbWxiYVYxZEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkSUQwZ2UzMDdYRzRnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkVzNOd1lYSnpaVTFoZEhKcGVDNXFXMmxkWFNBOUlERWdMU0J6Y0dGeWMyVk5ZWFJ5YVhndVpHbHpkR0Z1WTJWYmFWMDdYRzRnSUNBZ0lDQnBaaUFvSVhOd1lYSnpaVTlpYW1WamRGdHpjR0Z5YzJWTllYUnlhWGd1YWx0cFhWMHBYRzRnSUNBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYwZ1BTQjdmVHRjYmlBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYxYmMzQmhjbk5sVFdGMGNtbDRMbWxiYVYxZElEMGdNU0F0SUhOd1lYSnpaVTFoZEhKcGVDNWthWE4wWVc1alpWdHBYVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhOd1lYSnpaVTlpYW1WamREdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZV1JrVEc5dmNITW9jM0JoY25ObFQySnFaV04wT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1U2IzZHpPeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFcybGRLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFWMGdQU0I3ZlR0Y2JpQWdJQ0FnSUhOd1lYSnpaVTlpYW1WamRGdHBYVnRwWFNBOUlIUm9hWE11WDI5d2RHbHZibk11YlhWc2RFWmhZM1J2Y2p0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUc1dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ2tnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQlBZbXBsWTNRdWEyVjVjeWh6Y0dGeWMyVlBZbXBsWTNRcEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeWIzY2dQU0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZE8xeHVJQ0FnSUNBZ2JHVjBJSE4xYlNBOUlEQTdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR29nYjJZZ1QySnFaV04wTG10bGVYTW9jbTkzS1NsY2JpQWdJQ0FnSUNBZ2MzVnRJQ3M5SUhKdmQxdHFJR0Z6SUdGdWVWMDdYRzRnSUNBZ0lDQnBaaUFvYzNWdElEMDlQU0F3S1NCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FpQnZaaUJQWW1wbFkzUXVhMlY1Y3loeWIzY3BLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTQXZQU0J6ZFcwN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCbGVIQmhibVFvYzNCaGNuTmxUMkpxWldOME9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUXNJRzVTYjNkek9pQnVkVzFpWlhJcElIdGNiaUFnSUNCamIyNXpkQ0JsZUhCaGJtUmxaRTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBJRDBnZTMwN1hHNGdJQ0FnWTI5dWMzUWdiM0prWlhJZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWJXRjRLRTFoZEdndWJHOW5NVEFvYmxKdmQzTXBMQ0F5S1NrZ0t5QXhPMXh1SUNBZ0lHTnZibk4wSUcxcGJrOXlaR1Z5SUQwZ1RXRjBhQzV3YjNjb01UQXNJRzl5WkdWeUtUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHNVNiM2R6T3lCcEt5c3BJSHRjYmlBZ0lDQWdJR2xtSUNnaGMzQmhjbk5sVDJKcVpXTjBXMmxkS1Z4dUlDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUM4dklHTnZibk4wSUhKdmR5QTlJSE53WVhKelpVOWlhbVZqZEZ0cFhUdGNiaUFnSUNBZ0lHVjRjR0Z1WkdWa1QySnFaV04wVzJsZElEMGdlMzA3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JxSUQwZ2FUc2dhaUE4SUc1U2IzZHpPeUJxS3lzcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGemNHRnljMlZQWW1wbFkzUmJhVjAvTGx0cVhTbGNiaUFnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkbUZzSUQwZ2RHaHBjeTVuWlhSRmVIQmhibVJXWVd4MVpTaHpjR0Z5YzJWUFltcGxZM1FzSUdrc0lHb3BPeUF2TDNCeWRXNXBibWNnYzNSbGNGeHVJQ0FnSUNBZ0lDQnBaaUFvVFdGMGFDNXliM1Z1WkNoMllXd2dLaUJ0YVc1UGNtUmxjaWtnTHlCdGFXNVBjbVJsY2lBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCbGVIQmhibVJsWkU5aWFtVmpkRnRwWFZ0cVhTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvSVdWNGNHRnVaR1ZrVDJKcVpXTjBXMnBkS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdaWGh3WVc1a1pXUlBZbXBsWTNSYmFsMGdQU0I3ZlR0Y2JpQWdJQ0FnSUNBZ0lDQmxlSEJoYm1SbFpFOWlhbVZqZEZ0cVhWdHBYU0E5SUhaaGJEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWlhod1lXNWtaV1JQWW1wbFkzUTdYRzRnSUgxY2JseHVJQ0F2THlCd2NtbDJZWFJsSUhCeWRXNWxLSEp2ZHpvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMFcyNTFiV0psY2wwcElIdGNibHh1SUNBdkx5QjlYRzVjYmlBZ2NISnBkbUYwWlNCcGJtWnNZWFJsS0hOd1lYSnpaVTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBLU0I3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JwSUc5bUlFOWlhbVZqZEM1clpYbHpLSE53WVhKelpVOWlhbVZqZENrcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhKdmR5QTlJSE53WVhKelpVOWlhbVZqZEZ0cElHRnpJR0Z1ZVYwN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHb2diMllnVDJKcVpXTjBMbXRsZVhNb2NtOTNLU2xjYmlBZ0lDQWdJQ0FnYzNCaGNuTmxUMkpxWldOMFcya2dZWE1nWVc1NVhWdHFJR0Z6SUdGdWVWMGdQU0JOWVhSb0xuQnZkeWh6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTd2dkR2hwY3k1ZmIzQjBhVzl1Y3k1cGJtWnNZWFJsUm1GamRHOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2RsZEVWNGNHRnVaRlpoYkhWbEtITndZWEp6WlU5aWFtVmpkRG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wTENCcE9pQmhibmtzSUdvNklHRnVlU2tnZTF4dUlDQWdJR3hsZENCMllXd2dQU0F3TzF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SSmJtUmxlR1Z6SUQwZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFQySnFaV04wVzJsZElEOC9JSHQ5S1R0Y2JpQWdJQ0JqYjI1emRDQnZkR2hsY2tsdVpHVjRaWE1nUFNCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWUFltcGxZM1JiYWwwZ1B6OGdlMzBwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYXlCdlppQmpkWEp5Wlc1MFNXNWtaWGhsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzkwYUdWeVNXNWtaWGhsY3k1cGJtTnNkV1JsY3locktTbGNiaUFnSUNBZ0lDQWdkbUZzSUNzOUlITndZWEp6WlU5aWFtVmpkRnRwWFZ0cklHRnpJR0Z1ZVYwZ0tpQnpjR0Z5YzJWUFltcGxZM1JiYWwxYmF5QmhjeUJoYm5sZE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkbUZzTzF4dUlDQjlYRzU5WEc1Y2JpSmRmUT09IiwiaW1wb3J0IHsgU3BhcnNlTWF0cml4U2VydmljZSB9IGZyb20gJy4uL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UnO1xuaW1wb3J0IHsgTUNMU3BhcnNlUmVkdWNlciB9IGZyb20gJy4vbWFyY292LWNsdXN0ZXInO1xub25tZXNzYWdlID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyBkYXRhLCB0aHJlc2hvbGQsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kLCBkaXN0YW5jZUZuQXJncywgZGlzdGFuY2VGbnMsIG1heEl0ZXJhdGlvbnMgfSA9IGV2ZW50LmRhdGE7XG4gICAgY29uc3Qgc3BhcnNlID0gYXdhaXQgbmV3IFNwYXJzZU1hdHJpeFNlcnZpY2UoKVxuICAgICAgICAuY2FsY011bHRpQ29sdW1uKGRhdGEsIGRpc3RhbmNlRm5zLCB0aHJlc2hvbGQgLyAxMDAsIGRpc3RhbmNlRm5BcmdzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgbmV3IE1DTFNwYXJzZVJlZHVjZXIoeyBtYXhJdGVyYXRpb25zOiBtYXhJdGVyYXRpb25zID8/IDUgfSkudHJhbnNmb3JtKHNwYXJzZSwgZGF0YVswXS5sZW5ndGgpO1xuICAgIHBvc3RNZXNzYWdlKHsgcmVzIH0pO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXTnNMWGR2Y210bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW0xamJDMTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVUZETEcxQ1FVRnRRaXhGUVVGRExFMUJRVTBzTUVOQlFUQkRMRU5CUVVNN1FVRkhOMFVzVDBGQlR5eEZRVUZETEdkQ1FVRm5RaXhGUVVGRExFMUJRVTBzYTBKQlFXdENMRU5CUVVNN1FVRkZiRVFzVTBGQlV5eEhRVUZITEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRKUVVNeFFpeE5RVUZOTEVWQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1kwRkJZeXhGUVVGRkxGZEJRVmNzUlVGQlJTeGhRVUZoTEVWQlFVTXNSMEZIYUVJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU14Uml4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzYlVKQlFXMUNMRVZCUVVVN1UwRkRNME1zWlVGQlpTeERRVUZETEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1UwRkJVeXhIUVVGSExFZEJRVWNzUlVGQlJTeGpRVUZqTEVWQlFVVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZEYmtjc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFVkJRVU1zWVVGQllTeEZRVUZGTEdGQlFXRXNTVUZCU1N4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlF6bEhMRmRCUVZjc1EwRkJReXhGUVVGRExFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tJc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhUWlhKMmFXTmxmU0JtY205dElDY3VMaTlrYVhOMFlXNWpaUzF0WVhSeWFYZ3ZjM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sSnp0Y2JtbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkgwZ1puSnZiU0FuTGk0dlpHbHpkR0Z1WTJVdGJXRjBjbWw0TDNSNWNHVnpKenRjYm1sdGNHOXlkQ0I3UzI1dmQyNU5aWFJ5YVdOemZTQm1jbTl0SUNjdUxpOTBlWEJsWkMxdFpYUnlhV056Snp0Y2JtbHRjRzl5ZENCN1RVTk1VM0JoY25ObFVtVmtkV05sY24wZ1puSnZiU0FuTGk5dFlYSmpiM1l0WTJ4MWMzUmxjaWM3WEc1Y2JtOXViV1Z6YzJGblpTQTlJR0Z6ZVc1aklDaGxkbVZ1ZENrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3WkdGMFlTd2dkR2h5WlhOb2IyeGtMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnWkdsemRHRnVZMlZHYmtGeVozTXNJR1JwYzNSaGJtTmxSbTV6TENCdFlYaEpkR1Z5WVhScGIyNXpmVHBjYmlBZ0lIdGtZWFJoT2lCaGJubGJYVnRkTENCMGFISmxjMmh2YkdRNklHNTFiV0psY2l4Y2JpQWdJQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYU3dnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFzWEc0Z0lDQWdaR2x6ZEdGdVkyVkdibk02SUV0dWIzZHVUV1YwY21samMxdGRMQ0JrYVhOMFlXNWpaVVp1UVhKbmN6b2dZVzU1VzEwc0lHMWhlRWwwWlhKaGRHbHZibk02SUc1MWJXSmxjbjBnUFNCbGRtVnVkQzVrWVhSaE8xeHVJQ0JqYjI1emRDQnpjR0Z5YzJVZ1BTQmhkMkZwZENCdVpYY2dVM0JoY25ObFRXRjBjbWw0VTJWeWRtbGpaU2dwWEc0Z0lDQWdMbU5oYkdOTmRXeDBhVU52YkhWdGJpaGtZWFJoTENCa2FYTjBZVzVqWlVadWN5d2dkR2h5WlhOb2IyeGtJQzhnTVRBd0xDQmthWE4wWVc1alpVWnVRWEpuY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcE8xeHVJQ0JqYjI1emRDQnlaWE1nUFNCaGQyRnBkQ0J1WlhjZ1RVTk1VM0JoY25ObFVtVmtkV05sY2loN2JXRjRTWFJsY21GMGFXOXVjem9nYldGNFNYUmxjbUYwYVc5dWN5QS9QeUExZlNrdWRISmhibk5tYjNKdEtITndZWEp6WlN3Z1pHRjBZVnN3WFM1c1pXNW5kR2dwTzF4dUlDQndiM04wVFdWemMyRm5aU2g3Y21WemZTazdYRzU5TzF4dUlsMTkiXSwibmFtZXMiOlsiRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwiY2h1bmtJZCIsImciLCJnbG9iYWxUaGlzIiwidGhpcyIsIkZ1bmN0aW9uIiwiZSIsIndpbmRvdyIsIm8iLCJvYmoiLCJwcm9wIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwic2NyaXB0VXJsIiwiaW1wb3J0U2NyaXB0cyIsImxvY2F0aW9uIiwiZG9jdW1lbnQiLCJjdXJyZW50U2NyaXB0Iiwic3JjIiwic2NyaXB0cyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwibGVuZ3RoIiwiaSIsIkVycm9yIiwicmVwbGFjZSIsInAiLCJiIiwic2VsZiIsImlzTmlsIiwieCIsImluc2VydFNtYWxsZXIiLCJkaXN0YW5jZXNBciIsImluZGV4ZXMiLCJudW0iLCJpbmRleCIsIm5ld1Bvc2l0aW9uIiwiZmluZEluZGV4IiwidiIsInBvcCIsInNwbGljZSIsIlNwYXJzZU1hdHJpeFNlcnZpY2UiLCJjb25zdHJ1Y3RvciIsIl93b3JrZXJDb3VudCIsIk1hdGgiLCJtYXgiLCJuYXZpZ2F0b3IiLCJoYXJkd2FyZUNvbmN1cnJlbmN5IiwiY2FsY011bHRpQ29sdW1uIiwidmFsdWVzIiwiZm5OYW1lcyIsInRocmVzaG9sZCIsIm9wdHMiLCJ3ZWlnaHRzIiwiYWdncmVnYXRpb25NZXRob2QiLCJFVUNMSURFQU4iLCJtYXRTaXplIiwiY2h1bmtTaXplIiwiZmxvb3IiLCJtaW5UaHJlc2hvbGQiLCJnZXRNaW5pbWFsVGhyZXNob2xkIiwiY29uc29sZSIsImxvZyIsImZvckVhY2giLCJfIiwicHJvbWlzZXMiLCJBcnJheSIsIndvcmtlcnMiLCJmaWxsIiwibWFwIiwiV29ya2VyIiwiVVJMIiwiaWR4IiwiUHJvbWlzZSIsInJlc29sdmVXb3JrZXIiLCJyZWplY3RXb3JrZXIiLCJzdGFydElkeCIsImVuZElkeCIsIkludDMyQXJyYXkiLCJqIiwiZGlzdGFuY2UiLCJGbG9hdDMyQXJyYXkiLCJwb3N0TWVzc2FnZSIsIm9ubWVzc2FnZSIsImRhdGEiLCJlcnJvciIsInRlcm1pbmF0ZSIsInJlc3VsdHMiLCJhbGwiLCJmdWxsU2l6ZSIsInJlZHVjZSIsImFjYyIsInZhbCIsIm9mZnNldCIsInJlcyIsInNldCIsImNhbGMiLCJmbk5hbWUiLCJnZXRLTk4iLCJuTmVpZ2hib3VycyIsIm11bHRpQ29sdW1uS05OIiwiZ2V0VGhyZXNob2xkS05OIiwibXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4iLCJzb21lIiwia25uRGlzdGFuY2VzIiwia25uSW5kZXhlcyIsImtublNpemVzIiwia25uUmVzIiwiZ2V0U2FtcGxlRGlzdGFuY2VzIiwidGhyZXNob2xkV29ya2VycyIsIm1heFNhbXBsZVNpemUiLCJzYW1wbGVTaXNlIiwibWluIiwidGVzdFNldFNpemVQZXJXb3JrZXIiLCJ0UHJvbWlzZXMiLCJzYW1wbGVMZW5ndGgiLCJzb3J0IiwidyIsImNhbGNTeW5jIiwiZGlzdGFuY2VGbiIsImRpc3RhbmNlcyIsImNudCIsIm1pIiwibWoiLCJ2YWx1ZSIsInB1c2giLCJhc3luYyIsImJpb0xheW91dCIsImNsdXN0ZXIiLCJzcGFyc2VPYmplY3QiLCJuIiwiaXMiLCJqcyIsImEiLCJlbWJlZFgiLCJyYW5kb20iLCJlbWJlZFkiLCJ4VmVsb2NpdGllcyIsInlWZWxvY2l0aWVzIiwidGVtcGVyYXR1cmUiLCJkeCIsImR5IiwiYWJzIiwidmVjU2l6ZSIsInNxcnQiLCJtaW5YIiwibWluWSIsIm1heFgiLCJtYXhZIiwicmFuZ2VYIiwicmFuZ2VZIiwiZ2V0TGF5b3V0RW1iZWRkaW5ncyIsImRlZmF1bHRNQ0xPcHRpb25zIiwiZXhwYW5kRmFjdG9yIiwibWF4SXRlcmF0aW9ucyIsImluZmxhdGVGYWN0b3IiLCJtdWx0RmFjdG9yIiwiTUNMU3BhcnNlUmVkdWNlciIsIl9vcHRpb25zIiwidHJhbnNmb3JtIiwic3BhcnNlTWF0cml4IiwiblJvd3MiLCJ0b09iamVjdEZvcm0iLCJhZGRMb29wcyIsIm5vcm1hbGl6ZSIsImV4cGFuZCIsImluZmxhdGUiLCJjbHVzdGVycyIsImFzc2lnbkNsdXN0ZXJzIiwiY29ycmVjdENsdXN0ZXJzIiwiZW1iZWRkaW5ncyIsImxheW91dCIsImNsdXN0ZXJTaXplTWFwIiwic29ydGVkSW5kZXhlcyIsImtleXMiLCJOdW1iZXIiLCJjbHVzdGVyTWFwIiwiY2x1c3RlcklkeCIsImNsdXN0ZXJOdW0iLCJzb3J0ZWRDbHVzdGVyTmFtZXMiLCJwZXJSb3ciLCJ5T2Zmc2V0IiwiY2x1c3Rlck5hbWUiLCJjZWlsIiwib2Zmc2V0WCIsIm1lcmdlQ2x1c3RlcnMiLCJpQ2x1c3RlciIsImpDbHVzdGVyIiwiayIsIm9yZGVyIiwibG9nMTAiLCJtaW5PcmRlciIsInBvdyIsInJvdW5kIiwiVWludDMyQXJyYXkiLCJyb3ciLCJzdW0iLCJleHBhbmRlZE9iamVjdCIsImdldEV4cGFuZFZhbHVlIiwiY3VycmVudEluZGV4ZXMiLCJvdGhlckluZGV4ZXMiLCJpbmNsdWRlcyIsImV2ZW50IiwiZGlzdGFuY2VGbkFyZ3MiLCJkaXN0YW5jZUZucyIsInNwYXJzZSJdLCJzb3VyY2VSb290IjoiIn0=
|