"use strict";var e=require("ethers"),t=require("lodash"),r=require("uint8arrays"),a=require("uuid"),i=require("object-sha"),s=require("@i3m/non-repudiation-library"),n=require("did-jwt"),o=require("crypto"),c=require("debug"),d=require("path"),l=require("rxjs"),u=require("@veramo/core"),h=require("@veramo/did-manager"),p=require("@veramo/did-provider-ethr"),f=require("@veramo/did-provider-web"),w=require("@veramo/key-manager"),g=require("@veramo/did-resolver"),y=require("did-resolver"),m=require("@ethersproject/basex"),v=require("@ethersproject/bignumber"),b=require("@ethersproject/contracts"),k=require("@ethersproject/providers"),x=require("ethr-did-registry"),D=require("@ethersproject/address"),S=require("@ethersproject/transactions"),E=require("querystring"),M=require("web-did-resolver"),O=require("@veramo/selective-disclosure"),$=require("@veramo/message-handler"),I=require("@veramo/did-jwt"),j=require("@veramo/credential-w3c"),A=require("fs/promises"),T=require("events"),N=require("write-file-atomic"),R=require("fs");function K(e){return e&&e.__esModule?e:{default:e}}function C(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var P=K(t),J=C(r),q=K(o),W=K(c),U=K(x),V=C(E);var B={encode:e=>e.toString("base64").replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),decode:e=>Buffer.from(e,"base64")};function _(e,t){const r=e.match(/^([a-zA-Z0-9_-]+)\.([a-zA-Z0-9_-]+)\.([a-zA-Z0-9_-]+)$/);if(null!=r)return{header:JSON.parse(B.decode(r[1]).toString("binary")),payload:JSON.parse(B.decode(r[2]).toString(t)),signature:r[3],data:`${r[1]}.${r[2]}`};throw new Error("invalid_argument: Incorrect format JWS")}class F extends Error{constructor(e,t){super(e),this.code=t?.code??1,this.status=t?.status??500}}const L=async(e,t)=>{const r=[];try{const{keyPair:t}=e.resource,r=JSON.parse(t.publicJwk),a=JSON.parse(t.privateJwk);await s.verifyKeyPair(r,a),t.publicJwk=await s.parseJwk(r,!0),t.privateJwk=await s.parseJwk(a,!0),e.id=await i.digest(t.publicJwk)}catch(e){r.push(new Error("string"==typeof e?e:"unknown validation error"))}return r};function H(e){return Object.keys(e.credentialSubject).filter((e=>"id"!==e))}async function z(e,t,r){let a;try{a=_(e)}catch(e){return{verification:"failed",error:"Invalid JWT format"}}const i=a.payload;if(void 0!==r){const e=P.default.cloneDeep(r);P.default.defaultsDeep(e,i);const t=(s=i,o=e,Object.keys(s).reduce(((e,t)=>{if(Object.prototype.hasOwnProperty.call(o,t)){if(P.default.isEqual(s[t],o[t])){const r=e.indexOf(t);e.splice(r,1)}}else e.push(t);return e}),Object.keys(o)));if(t.length>0)return{verification:"failed",error:"The following top-level properties are missing or different: "+t.join(", "),decodedJwt:a}}var s,o;const c={resolve:async e=>await t.agent.resolveDid({didUrl:e})};try{return{verification:"success",decodedJwt:(await n.verifyJWT(e,{resolver:c})).payload}}catch(e){if(e instanceof Error)return{verification:"failed",error:e.message,decodedJwt:a};throw new Error("unknown error during verification")}}async function Y(e,t,r){const a=[],{signatures:i,...s}=e;let n,o;return"provider"===r?(o=s.parties.providerDid,n=await z(i.providerSignature,t,s)):(o=s.parties.consumerDid,n=await z(i.consumerSignature,t,s)),"success"===n.verification?n.decodedJwt?.iss!==o&&a.push(new Error(`Signing DID does not match expected signer: ${n.decodedJwt?.iss??"undefined"} != ${o}`)):a.push(new Error(n.error)),a}const G=W.default("base-wallet"+d.basename(__filename));async function X(e,t,r,...a){if(t.length<1||void 0===t[0][r])throw new Error("invalid executors");const i=e.successRate??0;if(i<0||i>1)throw new Error("invalid successRate. It should be a value between 0 and 1 (both included)");const s=0===i?1:Math.ceil(i*t.length),n=e.timeout??1e4,o=new l.Observable((e=>{let i=0;t.forEach((s=>{const n=s[r];let o=!1;try{const r=n.call(s,...a);void 0!==(c=r)&&"function"==typeof c.then?(o=!0,r.then((t=>{e.next(t)})).catch((e=>{G(e)})).finally((()=>{i++,i===t.length&&e.complete()}))):e.next(r)}catch(e){G(e)}finally{o||(i++,i===t.length&&e.complete())}var c}))})).pipe(l.bufferCount(s),l.timeout(n)),c=await new Promise(((e,t)=>{const r=o.subscribe({next:t=>{e(t)}});setTimeout((()=>{r.unsubscribe(),t(new Error("Timeout waiting for results reached"))}),n)})).catch();if(c.length{const r=[];try{const{dataSharingAgreement:a,keyPair:n}=e.resource,o=await s.validateDataSharingAgreementSchema(a);if(o.length>0)return o;if(a.parties.consumerDid===a.parties.providerDid)throw new Error("the same identity cannot be at the same time the consumer and the provider");const c=await s.validateDataExchangeAgreement(a.dataExchangeAgreement);let d;if(c.length>0&&c.forEach((e=>{r.push(e)})),n.publicJwk===a.dataExchangeAgreement.orig)d="provider";else{if(n.publicJwk!==a.dataExchangeAgreement.dest)throw new Error(`${n.publicJwk} is not either dataExchangeAgreement.orig or dataExchangeAgreement.dest`);d="consumer"}if(await s.verifyKeyPair(JSON.parse(n.publicJwk),JSON.parse(n.privateJwk)),void 0!==e.identity){if(("consumer"===d?a.parties.consumerDid:a.parties.providerDid)!==e.identity)throw new Error(`resource.identity does not match dataSharingAgreement.parties.${d}Did`)}(await Y(a,t,"provider")).forEach((e=>{r.push(e)}));(await Y(a,t,"consumer")).forEach((e=>{r.push(e)})),e.id=await i.digest(a.dataExchangeAgreement)}catch(e){r.push(new Error("string"==typeof e?e:"unknown validation error"))}return r},Q=async(e,t)=>{const r=[];return r.push(new Error("NOT IMPLEMENTED. The data exchange will be automatically added when adding a valid nr proof")),r},ee=W.default("base-wallet:NrpValidator"),te=async(e,t)=>{const r=[];try{const t=e.resource,a=await s.jwsDecode(t,((e,t)=>{const r=t.iss;return JSON.parse(t.exchange[r])})),i=await s.validateDataExchange(a.payload.exchange);i.length>0?i.forEach((e=>{r.push(e)})):(e.parentResource=a.payload.exchange.id,ee(`Received NRP for data exchange ${a.payload.exchange.id}:\n`+JSON.stringify(a.payload.exchange,void 0,2)),ee(` associated to data exchange agreement ${e.parentResource}`),e.name=a.payload.proofType)}catch(e){r.push(new Error("string"==typeof e?e:JSON.stringify(e,void 0,2)))}return r},re=async(e,t)=>[],ae=async(e,t)=>{const r=[],a=e.resource.credentialSubject.id;if(e.identity=a,void 0===e.resource)r.push(new F(""));else try{await t.agent.handleMessage({raw:e.resource.proof.jwt})}catch(e){r.push(e)}return r};class ie{constructor(){this.validators={},this.initValidators()}initValidators(){this.setValidator("VerifiableCredential",ae),this.setValidator("Object",re),this.setValidator("KeyPair",L),this.setValidator("Contract",Z),this.setValidator("DataExchange",Q),this.setValidator("NonRepudiationProof",te)}setValidator(e,t){this.validators[e]=t}async validate(e,t){const r={validated:!1,errors:[]},a=this.validators[e.type];return void 0!==a&&(r.errors=await a(e,t),r.validated=!0),r}}const se=e=>{const t=e.split(":");if(1===t.length)throw new Error("Wrong did format");if("ethr"===t[1]){const e=t.pop();return t.push(`${e.slice(0,6)}...${e.slice(e.length-6)}`),t.join(":")}return e};const ne=/^(.*)?(0x[0-9a-fA-F]{40}|0x[0-9a-fA-F]{66})$/,oe="0xdca7ef03e98e0dc2b855be647c39abe984fcf21b";var ce,de;!function(e){e.EcdsaSecp256k1VerificationKey2019="EcdsaSecp256k1VerificationKey2019",e.EcdsaSecp256k1RecoveryMethod2020="EcdsaSecp256k1RecoveryMethod2020",e.Ed25519VerificationKey2018="Ed25519VerificationKey2018",e.RSAVerificationKey2018="RSAVerificationKey2018",e.X25519KeyAgreementKey2019="X25519KeyAgreementKey2019"}(ce||(ce={})),function(e){e.DIDOwnerChanged="DIDOwnerChanged",e.DIDAttributeChanged="DIDAttributeChanged",e.DIDDelegateChanged="DIDDelegateChanged"}(de||(de={}));const le={sigAuth:"SignatureAuthentication2018",veriKey:"VerificationKey2018",enc:"KeyAgreementKey2019"},ue={Secp256k1VerificationKey2018:ce.EcdsaSecp256k1VerificationKey2019,Ed25519SignatureAuthentication2018:ce.Ed25519VerificationKey2018,Secp256k1SignatureAuthentication2018:ce.EcdsaSecp256k1VerificationKey2019,RSAVerificationKey2018:ce.RSAVerificationKey2018,Ed25519VerificationKey2018:ce.Ed25519VerificationKey2018,X25519KeyAgreementKey2019:ce.X25519KeyAgreementKey2019};function he(e){const t="0x"+Buffer.from(e).slice(0,32).toString("hex");return t+"0".repeat(66-t.length)}function pe(e){let t,r=e;if(r.startsWith("did:ethr")){r=r.split("?")[0];const e=r.split(":");r=e[e.length-1],e.length>=4&&(t=e.splice(2,e.length-3).join(":"))}return r.length>42?{address:S.computeAddress(r),publicKey:r,network:t}:{address:D.getAddress(r),network:t}}const fe={mainnet:"0x1",ropsten:"0x3",rinkeby:"0x4",goerli:"0x5",kovan:"0x2a"},we={...fe,rsk:"0x1e","rsk:testnet":"0x1f",artis_t1:"0x03c401",artis_s1:"0x03c301",matic:"0x89",maticmum:"0x13881"};var ge;function ye(e){if(!e)return{};return be({networks:[{name:"mainnet",chainId:"0x1",provider:new k.InfuraProvider("homestead",e)},{name:"ropsten",chainId:"0x3",provider:new k.InfuraProvider("ropsten",e)},{name:"rinkeby",chainId:"0x4",provider:new k.InfuraProvider("rinkeby",e)},{name:"goerli",chainId:"0x5",provider:new k.InfuraProvider("goerli",e)},{name:"kovan",chainId:"0x2a",provider:new k.InfuraProvider("kovan",e)}]})}function me(e){let t=e.provider||e.web3?.currentProvider;if(!t){if(!e.rpcUrl)throw new Error(`invalid_config: No web3 provider could be determined for network ${e.name||e.chainId}`);{const r=e.chainId?e.chainId:we[e.name||""],a=r?v.BigNumber.from(r).toNumber():r,i=fe[e.name||""]?e.name?.replace("mainnet","homestead"):"any";t=new k.JsonRpcProvider(e.rpcUrl,a||i)}}return b.ContractFactory.fromSolidity(U.default).attach(e.registry||oe).connect(t)}function ve(e){const t={},r=e.chainId||we[e.name||""];if(r){e.name&&(t[e.name]=me(e));t["number"==typeof r?`0x${r.toString(16)}`:r]=me(e)}else(e.provider||e.web3||e.rpcUrl)&&(t[e.name||""]=me(e));return t}function be(e){return{...ve(e),...e.networks?.reduce(((e,t)=>({...e,...ve(t)})),{})}}!function(e){e.notFound="notFound",e.invalidDid="invalidDid",e.unknownNetwork="unknownNetwork"}(ge||(ge={}));class ke{constructor(e,t,r,a="mainnet",i,s,n=oe){const{address:o,publicKey:c,network:d}=pe(e),l=d||a;if(t)this.contract=t;else{if(!(i||r?.provider||s))throw new Error(" either a contract instance or a provider or rpcUrl is required to initialize");{const e=i||r?.provider;this.contract=me({name:l,provider:e,registry:n,rpcUrl:s})}}this.signer=r,this.address=o;let u=l?`${l}:`:"";u in["mainnet:","0x1:"]&&(u=""),this.did=c?`did:ethr:${u}${c}`:`did:ethr:${u}${o}`}async getOwner(e,t){return(await this.contract.functions.identityOwner(e,{blockTag:t}))[0]}async attachContract(e){const t=e?await e:await this.getOwner(this.address,"latest"),r=this.signer?this.signer:this.contract.provider.getSigner(t)||this.contract.signer;return this.contract.connect(r)}async changeOwner(e,t={}){const r={gasLimit:123456,gasPrice:1e9,...t},a=await this.attachContract(r.from);delete r.from;const i=await a.functions.changeOwner(this.address,e,r);return await i.wait()}async addDelegate(e,t,r,a={}){const i={gasLimit:123456,gasPrice:1e9,...a},s=await this.attachContract(i.from);delete i.from;const n=he(e),o=await s.functions.addDelegate(this.address,n,t,r,i);return await o.wait()}async revokeDelegate(e,t,r={}){const a={gasLimit:123456,gasPrice:1e9,...r};e=e.startsWith("0x")?e:he(e);const i=await this.attachContract(a.from);delete a.from;const s=await i.functions.revokeDelegate(this.address,e,t,a);return await s.wait()}async setAttribute(e,t,r,a={}){const i={gasLimit:123456,gasPrice:1e9,controller:void 0,...a};e=e.startsWith("0x")?e:he(e),t=t.startsWith("0x")?t:"0x"+Buffer.from(t,"utf-8").toString("hex");const s=await this.attachContract(i.from);delete i.from;const n=await s.functions.setAttribute(this.address,e,t,r,i);return await n.wait()}async revokeAttribute(e,t,r={}){const a={gasLimit:123456,gasPrice:1e9,...r};e=e.startsWith("0x")?e:he(e),t=t.startsWith("0x")?t:"0x"+Buffer.from(t,"utf-8").toString("hex");const i=await this.attachContract(a.from);delete a.from;const s=await i.functions.revokeAttribute(this.address,e,t,a);return await s.wait()}}function xe(e,t){const r={};if(e.eventFragment.inputs.length!==e.args.length)throw new TypeError("malformed event input. wrong number of arguments");return e.eventFragment.inputs.forEach(((t,a)=>{let i=e.args[a];"object"==typeof i&&(i=v.BigNumber.from(i)),"bytes32"===t.type&&(i=function(e){return("string"==typeof e?Buffer.from(e.slice(2),"hex"):Buffer.from(e)).toString("utf8").replace(/\0+$/,"")}(i)),r[t.name]=i})),r._eventName=e.name,r.blockNumber=t,r}function De(e,t){return t.map((t=>xe(e.interface.parseLog(t),t.blockNumber)))}class Se{constructor(e){this.contracts=function(e={}){const t={...ye(e.infuraProjectId),...be(e)};if(0===Object.keys(t).length)throw new Error("invalid_config: Please make sure to have at least one network");return t}(e)}async getOwner(e,t,r){return new ke(e,this.contracts[t]).getOwner(e,r)}async previousChange(e,t,r){const a=await this.contracts[t].functions.changed(e,{blockTag:r});return v.BigNumber.from(a[0])}async getBlockMetadata(e,t){const r=await this.contracts[t].provider.getBlock(e);return{height:r.number.toString(),isoDate:new Date(1e3*r.timestamp).toISOString().replace(".000","")}}async changeLog(e,t,r="latest"){const a=this.contracts[t],i=a.provider,s=t.startsWith("0x")?t:we[t],n=s?v.BigNumber.from(s).toNumber():(await i.getNetwork()).chainId,o=[],{address:c,publicKey:d}=pe(e),l=d;let u=await this.previousChange(c,t,r);for(;u;){const e=u,t=De(a,await i.getLogs({address:a.address,topics:[null,`0x000000000000000000000000${c.slice(2)}`],fromBlock:u.toHexString(),toBlock:u.toHexString()}));t.reverse(),u=null;for(const r of t)o.unshift(r),r.previousChange.lt(e)&&(u=r.previousChange)}return{address:c,history:o,controllerKey:l,chainId:n}}wrapDidDocument(e,t,r,a,i,s,n){const o={"@context":["https://www.w3.org/ns/did/v1","https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld"],id:e,verificationMethod:[],authentication:[],assertionMethod:[]};let c=t;const d=[`${e}#controller`],l=[];let u=0,h=Number.POSITIVE_INFINITY,p=!1,f=0,w=0;const g={},y={},b={},k={};for(const t of a){if(-1!==s&&t.blockNumber>s){h>t.blockNumber&&(h=t.blockNumber);continue}u0&&(D.service=Object.values(k)),Object.values(y).length>0&&(D.keyAgreement=l.concat(Object.values(y))),D.assertionMethod=[...D.verificationMethod?.map((e=>e.id))||[]],p?{didDocument:{...o,"@context":"https://www.w3.org/ns/did/v1"},deactivated:p,versionId:u,nextVersionId:h}:{didDocument:D,deactivated:p,versionId:u,nextVersionId:h}}async resolve(e,t,r,a){const i=t.id.match(ne);if(!i)return{didResolutionMetadata:{error:ge.invalidDid,message:`Not a valid did:ethr: ${t.id}`},didDocumentMetadata:{},didDocument:null};const s=i[2],n=i[1]?i[1].slice(0,-1):"mainnet";let o=a.blockTag||"latest";if("string"==typeof t.query){const e=V.decode(t.query);o="string"==typeof e.versionId?e.versionId:o;try{o=Number.parseInt(o)}catch(e){o="latest"}}if(!this.contracts[n])return{didResolutionMetadata:{error:ge.unknownNetwork,message:`The DID resolver does not have a configuration for network: ${n}`},didDocumentMetadata:{},didDocument:null};let c=v.BigNumber.from(Math.floor((new Date).getTime()/1e3));if("number"==typeof o){const e=await this.getBlockMetadata(o,n);c=v.BigNumber.from(Date.parse(e.isoDate)/1e3)}const{address:d,history:l,controllerKey:u,chainId:h}=await this.changeLog(s,n,"latest");try{const{didDocument:t,deactivated:r,versionId:a,nextVersionId:i}=this.wrapDidDocument(e,d,u,l,h,o,c),s=r?{deactivated:!0}:{};let p={},f={};if(0!==a){const e=await this.getBlockMetadata(a,n);p={versionId:e.height,updated:e.isoDate}}if(i!==Number.POSITIVE_INFINITY){const e=await this.getBlockMetadata(i,n);f={nextVersionId:e.height,nextUpdate:e.isoDate}}return{didDocumentMetadata:{...s,...p,...f},didResolutionMetadata:{contentType:"application/did+ld+json"},didDocument:t}}catch(e){return{didResolutionMetadata:{error:ge.notFound,message:e.toString()},didDocumentMetadata:{},didDocument:null}}}build(){return{ethr:this.resolve.bind(this)}}}class Ee{constructor(e){this.options=e,this.resolvers=[];const t=[];if(e.networks.forEach((e=>{e.rpcUrl instanceof Array?e.rpcUrl.forEach(((r,a)=>{void 0===t[a]&&(t[a]=[]),t[a].push({name:e.network,rpcUrl:r})})):(void 0===t[0]&&(t[0]=[]),t[0].push({name:e.network,rpcUrl:e.rpcUrl}))})),t.forEach((e=>{const t=new Se({networks:e});this.resolvers.push(t)})),0===this.resolvers.length)throw new Error("no networks");this.networks=e.networks,this.multiRpcOptions=e.multiRpcOptions??{}}async getOwner(e,t,r){return await this.multiproviderFnExec("getOwner",e,t,r)}async previousChange(e,t,r){return await this.multiproviderFnExec("previousChange",e,t,r)}async getBlockMetadata(e,t){return await this.multiproviderFnExec("getBlockMetadata",e,t)}async changeLog(e,t,r){return await this.multiproviderFnExec("changeLog",e,t,r)}wrapDidDocument(e,t,r,a,i,s,n){return this.resolvers[0].wrapDidDocument(e,t,r,a,i,s,n)}async resolve(e,t,r,a){return await this.multiproviderFnExec("resolve",e,t,r,a)}build(){return{ethr:this.resolve.bind(this)}}async multiproviderFnExec(e,...t){const r=await X(this.multiRpcOptions,this.resolvers,e,...t);if((a=r).every((e=>P.default.isEqual(e,a[0]))))return r[0];var a;throw new Error("not all responses are equal, please consider removing the missbehaving/malicious RPC endpoint.")}}const Me=W.default("base-wallet:DidWalletStore");class Oe extends h.AbstractDIDStore{constructor(e){super(),this.store=e}async import(e){return await this.store.set(`identities.${e.did}`,e),!0}async get(e){Me("Get ddo");const t=await this.store.get("identities",{});if(void 0!==e.did){if(void 0===t[e.did])throw new F("DID not found",{status:404});return t[e.did]}if(void 0!==e.alias)throw new F("Get by alias not implemented.",{status:500});{const e=Object.keys(t);if(0===e.length)throw new F("DID not found",{status:404});return t[e[0]]}}async delete(e){return await this.store.delete(`identities.${e.did}`),!0}async list(e){const t=await this.store.get("identities");if(void 0===t)return[];const{alias:r,provider:a}=e;return Object.keys(t).filter((e=>(void 0===r||t[e].alias===r)&&(void 0===a||t[e].provider===a))).map((e=>t[e]))}}const $e=W.default("base-wallet:KMS");class Ie extends w.AbstractKeyManagementSystem{constructor(e){super(),this.keyWallet=e}async createKey(t){const r=t.type,a=await this.keyWallet.createAccountKeyPair();$e("Import",t,a);const i=await this.keyWallet.getPublicKey(a);if(!(i instanceof Uint8Array))throw Error("Only Uint8Array supported yet");return{kid:a,type:r,publicKeyHex:e.ethers.utils.hexlify(i).substr(2)}}async deleteKey(e){return await this.keyWallet.delete(e.kid),$e("Delete",e),!0}async encryptJWE(e){throw new Error("[encryptJWE] Method not implemented.")}async decryptJWE(e){throw new Error("[decryptJWE] Method not implemented.")}async signJWT(t){let r;const{key:a,data:i}=t;r="string"==typeof i?J.fromString(i,"utf-8"):i;const s=e.ethers.utils.sha256(r),n=e.ethers.utils.arrayify(s),o=await this.keyWallet.signDigest(a.kid,n);return J.toString(o.subarray(0,o.length-1),"base64url")}async signEthTX(t){const{key:r,transaction:a}=t,{v:i,r:s,s:n,from:o,...c}=a;if(e.ethers.utils.computeAddress(`0x${r.publicKeyHex}`).toLowerCase()!==o.toLowerCase())throw new F("Transaction from parammeter does not match the chosen key.");const d=e.ethers.utils.serializeTransaction(c),l=e.ethers.utils.keccak256(d),u=e.ethers.utils.arrayify(l),h=await this.keyWallet.signDigest(t.key.kid,u);return e.ethers.utils.serializeTransaction(c,h)}}const je=W.default("base-wallet:KeyWalletStore");class Ae extends w.AbstractKeyStore{constructor(e){super(),this.keyWallet=e}async import(e){return je("Import key. Doing nothing"),!0}async get(t){const r=t.kid;je("Get key",t,r);const a=await this.keyWallet.getPublicKey(r);if(!(a instanceof Uint8Array))throw Error("Only Uint8Array supported yet");return{kid:r,type:"Secp256k1",kms:"keyWallet",publicKeyHex:e.utils.hexlify(a).substr(2)}}async delete(e){return!0}}const Te="did:ethr:i3m",Ne={"did:ethr:i3m":{network:"i3m",rpcUrl:["http://95.211.3.244:8545","http://95.211.3.249:8545","http://95.211.3.250:8545","http://95.211.3.251:8545"]}};class Re{constructor(e,t,r){this.defaultKms="keyWallet",this.providersData=r;const a=(i={networks:Object.values(this.providersData),multiRpcOptions:{successRate:.5}},new Ee(i).build());var i;const s=M.getResolver(),n=new y.Resolver({...a,...s});this.providers={"did:web":new f.WebDIDProvider({defaultKms:this.defaultKms})};for(const[e,t]of Object.entries(this.providersData))this.providers[e]=new p.EthrDIDProvider({defaultKms:this.defaultKms,...{...t,rpcUrl:void 0!==t.rpcUrl?"string"==typeof t.rpcUrl?t.rpcUrl:t.rpcUrl[0]:void 0}});this.agent=u.createAgent({plugins:[new w.KeyManager({store:new Ae(t),kms:{keyWallet:new Ie(t)}}),new h.DIDManager({store:new Oe(e),defaultProvider:Te,providers:this.providers}),new j.CredentialIssuer,new O.SelectiveDisclosure,new $.MessageHandler({messageHandlers:[new I.JwtMessageHandler,new O.SdrMessageHandler,new j.W3cMessageHandler]}),new g.DIDResolverPlugin({resolver:n})]})}getProvider(e){const t=this.providers[e];if(void 0===t)throw new F("Identifier provider does not exist: "+e);return t}}function Ke(e){const t=[...e],r=[];for(let a=0;a{o.scrypt(e,t.salt,t.derivedKeyLength,a,((e,t)=>{null!==e&&s(e),i(r?t:o.createSecretKey(t))}))}));return await i}class We extends T.EventEmitter{constructor(e){super(),this.defaultModel=e,this.model=P.default.cloneDeep(e)}on(e,t){return super.on(e,t)}emit(e,...t){return super.emit(e,...t)}get(e,t){return P.default.get(this.model,e,t)}set(e,t){void 0!==t?(P.default.set(this.model,e,t),this.emit("changed",Date.now())):Object.assign({},this.model,e)}has(e){return P.default.has(this.model,e)}delete(e){this.model=P.default.omit(this.model,e),this.emit("changed",Date.now())}clear(){this.model=P.default.cloneDeep(this.defaultModel),this.emit("cleared",Date.now())}getStore(){return this.model}getPath(){return"RAM"}}const Ue=W.default("base-wallet:TestDialog");const Ve=W.default("base-wallet:NullDialog");const Be=W.default("base-wallet:ConsoleToast");exports.BaseWallet=class{constructor(e){this.dialog=e.dialog,this.store=e.store,this.toast=e.toast,this.keyWallet=e.keyWallet,this.resourceValidator=new ie,this.provider=e.provider??Te,this.providersData=e.providersData??Ne,this.confirmations={},this.veramo=new Re(this.store,this.keyWallet,this.providersData)}async executeTransaction(t={}){const r=this.veramo.providersData[this.provider];if(void 0===r?.rpcUrl)throw new F("This provider has incomplete information, cannot execute transaction");let a=t.transaction;const i=t.notifyUser??!0;if(void 0===a&&(a=await this.dialog.text({title:"Execute transaction",message:"Put the transaction. Should start with 0x"})),void 0===a||!a.startsWith("0x"))throw new F(`Invalid transaction ${a??""}`);const s=async e=>{e.wait().then((e=>{this.toast.show({message:"Transaction properly executed",type:"success"}),Ce(e)})).catch((e=>{const t=e.reason??"";this.toast.show({message:"Error sending transaction to the ledger"+t,type:"error"}),Ce(t)}))},n=async(e,t)=>{const r=await e.sendTransaction(t);i?s(r).catch((e=>{Ce(e)})):Ce(r)},o=Ke(r.rpcUrl instanceof Array?r.rpcUrl:[r.rpcUrl]).map((t=>new e.ethers.providers.JsonRpcProvider(t)));let c=!1;for(const e of o)try{await n(e,a),c=!0;break}catch(e){Ce(e)}if(!c)throw new F("Error sending transaction to the blockchain")}async queryBalance(){const t=this.veramo.providersData[this.provider];if(void 0===t?.rpcUrl)throw new F(`The provider '${this.provider}' has incomplete information: cannot execute transaction`);const r=await this.veramo.agent.didManagerFind(),a=await this.dialog.select({message:"Select an account to get its balance.",values:r,getText:e=>e.alias??e.did});if(void 0===a)throw new F("Query balance cancelled");const i=Ke(t.rpcUrl instanceof Array?t.rpcUrl:[t.rpcUrl]).map((t=>new e.ethers.providers.StaticJsonRpcProvider(t))),s=e.ethers.utils.computeAddress(`0x${a.keys[0].publicKeyHex}`),n=await i[0].getBalance(s);console.log(n);const o=await X({successRate:0},i,"getBalance",s),c=e.ethers.utils.formatEther(o[0]);this.toast.show({message:"Balance",details:`The account '${s}' current balance is ${c} ETH.`,type:"success"})}async createTransaction(){const t=this.veramo.providersData[this.provider];if(void 0===t?.rpcUrl)throw new F("This provider has incomplete information, cannot execute transaction");const r=await this.veramo.agent.didManagerFind(),a=await this.dialog.form({title:"Create Transaction",descriptors:{from:{type:"select",message:"Select the origin account",values:r,getText:e=>e.alias??""},to:{type:"text",message:"Type the destination account"},value:{type:"text",message:"Put the ether value"},sign:{type:"confirmation",message:"Sign the transaction?",acceptMsg:"Sign",rejectMsg:"Cancel"}},order:["from","to","value","sign"]});if(void 0===a)throw new F("Create transaction cancelled");const i=Ke(t.rpcUrl instanceof Array?t.rpcUrl:[t.rpcUrl]).map((t=>new e.ethers.providers.JsonRpcProvider(t))),s=e.ethers.utils.computeAddress(`0x${a.from.keys[0].publicKeyHex}`),n=(await X({successRate:0},i,"getTransactionCount",s,"latest"))[0],o=(await X({successRate:0},i,"getGasPrice"))[0],c={to:a.to,value:e.ethers.utils.parseEther(a.value),nonce:Number(n),gasLimit:e.ethers.utils.hexlify(1e5),gasPrice:o};let d="";if(a.sign){d=(await this.identitySign({did:a.from.did},{type:"Transaction",data:{...c,from:s}})).signature}else d=e.ethers.utils.serializeTransaction(c);await this.dialog.confirmation({message:`Transaction created, click the input to copy its value.\n`,acceptMsg:"Continue",rejectMsg:""})}async wipe(){if(!0!==await this.dialog.confirmation({title:"Delete Wallet?",message:"Are you sure you want to delete this wallet?",acceptMsg:"Delete",rejectMsg:"Cancel"}))throw new F("Operation rejected by user");await Promise.all([this.store.clear(),this.keyWallet.wipe()])}async selectIdentity(e){const t=await this.veramo.agent.didManagerFind(),r=`${e?.reason??"Authentication required. Please, select an identity to proceed."}`,a=await this.dialog.select({message:r,values:t,getText:e=>void 0!==e.alias?e.alias:e.did});if(void 0===a)throw new F("No did selected");return a}async selectCredentialsForSdr(e){if(null===e.data||void 0===e.data||void 0===e.from)return;const t=e.data,r={},a=await this.store.get("resources",{});for(const e of Object.values(a))if("VerifiableCredential"===e.type&&void 0!==e.identity)for(const a of Object.keys(e.resource.credentialSubject)){if("id"===a)continue;const i=t.claims.find((e=>e.claimType===a));if(void 0!==i){let t=r[e.identity];void 0===t&&(t={},r[e.identity]=t);let a=t[i.claimType];void 0===a&&(a={...i,credentials:[]},t[i.claimType]=a),a.credentials.push(e.resource)}}const i={},s=t.claims.filter((e=>!0===e.essential));for(const e of Object.keys(r)){const t=r[e];let a=!0;for(const e of s)if(void 0===t[e.claimType]){a=!1;break}a&&(i[e]=t)}let n;const o=Object.keys(i);if(0===o.length);else if(1===o.length)n=Object.keys(i)[0];else{const e=(await this.veramo.agent.didManagerFind()).filter((e=>o.includes(e.did))),r=`Requested claims ${t.claims.map((e=>e.claimType)).join(",")} are available in the following identities. Please select one to continue...`,a=await this.dialog.select({message:r,values:e,getText:e=>void 0!==e.alias?`${e.alias} (${se(e.did)})`:se(e.did)});void 0!==a&&(n=a.did)}if(void 0===n)throw new F("Selective disclousure cancelled by the user",{status:403});const c=i[n],d=[];for(;;){const t=await this.dialog.form({title:"Selective disclosure",descriptors:Object.values(c).reduce(((t,r)=>({...t,[r.claimType]:{type:"select",message:`${e.from??"UNKNOWN"} has requested the claim ${r.claimType}.You have the following claim/s that meet the request. \nSelect the claim to disclose or leave empty for not disclosing it.${!0===r.essential?"\nThis claim is compulsory. Not disclosing it will cancel the disclosure.":""}`,values:[void 0,...r.credentials],getText(e){if(void 0===e)return"Don't disclose";const t=e.credentialSubject[r.claimType];return`${r.claimType}=${t} (by ${se(e.issuer.id)})`},getContext:e=>void 0!==e?"success":"danger"}})),{}),order:Object.keys(c)});if(void 0===t){if(!0===await this.dialog.confirmation({message:"You cancelled the selective disclosure. Are you sure?",acceptMsg:"Yes",rejectMsg:"No",allowCancel:!1}))throw new F("Selective disclosure denied")}else{const e=[];for(const[r,a]of Object.entries(t))if(void 0!==a)d.push(a);else{void 0!==s.find((e=>e.claimType===r))&&e.push(r)}let r;if(e.length>0)r=await this.dialog.confirmation({message:`You skipped the mandatory claims: ${e.join(", ")}. The selective disclosure will be cancelled. \nContinue?`,acceptMsg:"No",rejectMsg:"Yes",allowCancel:!1});else{if(0!==d.length)break;r=await this.dialog.confirmation({message:"You did not select any claim.The selective disclosure will be cancelled. \nContinue?",acceptMsg:"No",rejectMsg:"Yes",allowCancel:!1})}if(!1===r)throw new F("Selective disclosure denied")}}return await this.veramo.agent.createVerifiablePresentation({presentation:{holder:n,verifier:[e.from],verifiableCredential:d,request:e.raw},proofFormat:"jwt",save:!1})}getKeyWallet(){return this.keyWallet}async call(e){await this[e.call]()}async getIdentities(){return await this.store.get("identities",{})}async identityList(e){const{alias:t}=e;return(await this.veramo.agent.didManagerFind({alias:t})).map((e=>({did:e.did})))}async identityCreate(e){const{alias:t}=e;if(void 0!==t){const e=await this.getIdentities();for(const r of Object.values(e))if(r.alias===t)return this.toast.show({message:"Alias already exists",details:`An identity with alias ${t} already exists. If you want to create a new one, please delete the old one first`,type:"warning"}),{did:r.did}}if(!0!==await this.dialog.confirmation({message:`Are you sure you want to create an identity${void 0!==t?` with alias '${t}'`:""}?`,acceptMsg:"Yes",rejectMsg:"No"}))throw new F("User cancelled the operation",{status:403});const{did:r}=await this.veramo.agent.didManagerCreate({alias:t,provider:this.provider});return{did:r}}async identitySelect(e){const{did:t}=await this.selectIdentity(e);return{did:t}}async identitySign(e,t){let r;switch(t.type){case"Transaction":{const{data:a}=t;if(void 0===a)throw new F("No transaction present on the request",{code:400});const i=await this.veramo.agent.didManagerGet(e);r={signature:await this.veramo.agent.keyManagerSignEthTX({kid:i.keys[0].kid,transaction:a})};break}case"Raw":{const{data:a}=t;if(void 0===a)throw new F("No data present on the request",{code:400});const i=await this.veramo.agent.didManagerGet(e);r={signature:await this.veramo.agent.keyManagerSignJWT({kid:i.keys[0].kid,data:J.fromString(a.payload,"base64url")})};break}case"JWT":{const{data:a}=t;if(void 0===a)throw new F("No data present on the request",{code:400});const i=await this.veramo.agent.didManagerGet(e),s=function(e,t,r){return`${B.encode(Buffer.from(JSON.stringify(e),"binary"))}.${B.encode(Buffer.from(JSON.stringify(t),r))}`}({...a.header??void 0,alg:"ES256K",typ:"JWT"},{...a.payload,iss:e.did,iat:Math.floor(Date.now()/1e3)});r={signature:`${s}.${await this.veramo.agent.keyManagerSignJWT({kid:i.keys[0].kid,data:s})}`};break}default:throw new F("Unknown sign data type")}return r}async identityInfo(t){const r=await this.veramo.agent.didManagerGet({did:t.did}),a=P.default.pick(r,["did","alias","provider"]);let i=[];return r.provider.startsWith("did:ethr")&&(i=r.keys.map((t=>e.ethers.utils.computeAddress(`0x${t.publicKeyHex}`)))),{...a,addresses:i}}async identityDeployTransaction(e,t){throw new Error("Method not implemented.")}async getResources(){return await this.store.get("resources",{})}async getResource(e){const t=await this.getResources(),r=Object.keys(t).map((e=>t[e])).filter((t=>t.id===e));if(1!==r.length)throw Error("resource not found");return r[0]}async setResource(e){let t;if(void 0!==e.parentResource)try{t=await this.getResource(e.parentResource)}catch(t){throw Ce("Failed to add resource since parent resource does not exist:\n"+JSON.stringify(e,void 0,2)),new Error("Parent resource for provided resource does not exist")}if(void 0!==e.identity&&!await this.store.has(`identities.${e.identity}`))throw Ce("Failed to add resource since the identity is associated to does not exist:\n"+JSON.stringify(e,void 0,2)),new Error("Identity for this resource does not exist");if(void 0!==t){if(void 0!==e.identity&&t.identity!==e.identity)throw Ce("Failed to add resource since it has a different identity than its parent resource"),new Error("Identity mismatch between parent and child resources");void 0===e.identity&&(e.identity=t.identity)}await this.store.set(`resources.${e.id}`,e)}async resourceList(e){const t=Object.keys(e),r=[],a=[];if(t.includes("type")&&(r.push(`type '${e.type??"unknown"}'`),a.push((t=>t.type===e.type))),t.includes("identity")&&(""!==e.identity&&void 0!==e.identity?(r.push(`identity '${e.identity}'`),a.push((t=>t.identity===e.identity))):(r.push("not liked to any identity"),a.push((e=>void 0===e.identity)))),t.includes("parentResource")){let t;try{t=await this.getResource(e.parentResource)}catch(e){throw new F("Invalid parentResource id",{status:400})}""!==e.parentResource&&void 0!==e.parentResource?(r.push(`parent-resource:\n\tid '${e.parentResource}\n\t${t.type}'`),a.push((t=>t.parentResource===e.parentResource))):a.push((e=>void 0===e.parentResource))}const i=`One application wants to retrieve all your stored resources${r.length>0?" with:\n"+r.join("\n\t"):""}.\nDo you agree?`;if(!1===await this.dialog.confirmation({message:i,acceptMsg:"Yes",rejectMsg:"No"}))throw new F("User cancelled the operation",{status:403});const s=await this.getResources();return Object.keys(s).map((e=>s[e])).filter((e=>a.reduce(((t,r)=>t&&r(e)),!0)))}async deleteResource(e,t=!0){let r=!0;if(t&&(r=await this.dialog.confirmation({message:"Are you sure you want to delete this resource and all its children resources (if any)? This action cannot be undone",acceptMsg:"Delete",rejectMsg:"Cancel"})),!0===r){await this.store.delete(`resources.${e}`);const t=await this.getResources(),r=Object.keys(t).map((e=>t[e])).filter((t=>t.parentResource===e));for(const e of r)await this.deleteResource(e.id,!1)}}async deleteIdentity(e){if(!0===await this.dialog.confirmation({message:"Are you sure you want to delete this identity and all its associated resources (if any)?\n"+e+"\nThis action cannot be undone",acceptMsg:"Delete",rejectMsg:"Cancel"})){await this.veramo.agent.didManagerDelete({did:e});const t=await this.getResources(),r=Object.keys(t).map((e=>t[e])).filter((t=>t.identity===e));for(const e of r)await this.deleteResource(e.id,!1)}}async resourceCreate(e){const t={...e,id:a.v4()};if("Contract"===t.type&&void 0===t.resource.keyPair){let e,r;try{e=await i.digest(t.resource.dataSharingAgreement.dataExchangeAgreement.orig),r=await this.getResource(e)}catch(a){try{e=await i.digest(t.resource.dataSharingAgreement.dataExchangeAgreement.dest),r=await this.getResource(e)}catch(e){throw new F("No associated keyPair found for this contract, please provide one",{status:400})}}t.resource.keyPair=r.resource.keyPair,t.parentResource=e}const r=await this.resourceValidator.validate(t,this.veramo);if(!r.validated)throw new F(`Resource validation failed: type ${t.type} not supported`,{status:400});if(r.errors.length>0){const e=[];throw r.errors.forEach((t=>{e.push(t.message)})),new F("Resource validation failed:\n"+e.join("\n"),{status:400})}switch(t.type){case"VerifiableCredential":{const e=H(t.resource).map((e=>` - ${e}: ${JSON.stringify(t.resource.credentialSubject[e])}`)).join("\n");if(!0!==await this.dialog.confirmation({message:`Do you want to add the following verifiable credential: \n${e}`}))throw new F("User cancelled the operation",{status:403});break}case"Object":if(!0!==await this.dialog.confirmation({message:"Do you want to add an object into your wallet?"}))throw new F("User cancelled the operation",{status:403});break;case"KeyPair":if(!0!==await this.dialog.confirmation({message:`Do you want to add the following keys to your wallet?\n\t${JSON.stringify(t.resource.keyPair,void 0,2)}`}))throw new F("User cancelled the operation",{status:403});break;case"Contract":{const{dataSharingAgreement:e,keyPair:r}=t.resource;if(!0!==await this.dialog.confirmation({message:`Do you want to add a data-sharing agreement to your wallet?\n\tofferingId: ${e.dataOfferingDescription.dataOfferingId}\n\tproviderDID: ${e.parties.providerDid}\n\tconsumerDID: ${e.parties.consumerDid}`}))throw new F("User cancelled the operation",{status:403});const a=await i.digest(r.publicJwk),s={id:a,identity:t.identity,type:"KeyPair",resource:{keyPair:r}};t.parentResource=a;try{await this.setResource(s)}catch(e){throw new F("Failed to add resource",{status:500})}break}case"NonRepudiationProof":{const e=_(t.resource).payload,r=e.exchange,{id:a,cipherblockDgst:n,blockCommitment:o,secretCommitment:c,...d}=r,l=await i.digest(d);if(!this.confirmations[l]){const t={value:"yes",text:"Yes",context:"success"},r={value:"no",text:"No",context:"danger"},a={value:"yesToAll",text:"Yes to all for this data sharing agreement",context:"success"},i=await this.dialog.select({message:`Do you want to add a non-repudiation proof into your wallet?\nType: ${e.proofType}\nExchangeId: ${await s.exchangeId(e.exchange)}`,values:[t,a,r],getText:e=>e.text,getContext:e=>e.context,showInput:!1});if(void 0===i||"no"===i.value)throw new F("User cancelled the operation",{status:403});"yesToAll"===i.value&&(this.confirmations[l]=!0)}if(!await this.store.has(`resources.${t.parentResource}`)){const e={id:a,parentResource:l,type:"DataExchange",resource:r};try{await this.setResource(e)}catch(e){throw new F("Failed to add resource",{status:500})}}break}default:throw new F("Resource type not supported",{status:501})}return await this.setResource(t),t}async selectiveDisclosure(e){const t=e.jwt;let r;try{r=await this.veramo.agent.handleMessage({raw:t,save:!1})}catch(e){if(e instanceof Error)throw new F(`Cannot verify selective disclousure request: ${e.message}`);throw e}if(void 0===r.from)throw new F("Selective disclosure request origin not defined");const a=await this.selectCredentialsForSdr(r);if(void 0===a)throw new F("No verifiable credentials selected");return{jwt:a.proof.jwt}}async transactionDeploy(e){return await this.executeTransaction({transaction:e.transaction}),{}}async didJwtVerify(e){try{return await z(e.jwt,this.veramo,e.expectedPayloadClaims)}catch(e){if("string"==typeof e)throw new F(e);throw new Error("string"==typeof e?e:"unknown error")}}async providerinfoGet(){const e=this.veramo.providersData[this.provider];return{provider:this.provider,...e}}},exports.ConsoleToast=class{show(e){Be("Show message:",e.message)}close(e){Be("Close toast",e)}},exports.DEFAULT_PROVIDER=Te,exports.DEFAULT_PROVIDERS_DATA=Ne,exports.FileStore=Je,exports.NullDialog=class{constructor(){this.valuesStack=[{text:"With love for my caller",confirmation:!0,selectMap(e){if(e.length>0)return e[0]}}]}get values(){return this.valuesStack[this.valuesStack.length-1]}async setValues(e,t){this.valuesStack.push(Object.assign({},this.values,e)),await t(),this.valuesStack.pop()}async text(e){return Ve("Returning a dummy text:",this.values.text),this.values.text}async confirmation(e){return Ve("Ask for user confirmation:",this.values.confirmation),this.values.confirmation}async select(e){const t=this.values.selectMap(e.values);return Ve("Pick item ",t," from ",e.values),t}async authenticate(){throw new Error("Method not implemented.")}async form(e){const t={},r=Object.keys(e.descriptors);for(const a of r){let r;const i=e.descriptors[a];switch(i.type){case"confirmation":r=this.confirmation(i);break;case"select":r=this.select(i);break;case"text":r=this.text(i)}void 0!==r&&(t[a]=await r)}return t}},exports.RamStore=We,exports.TestDialog=class{constructor(){this.valuesStack=[{text:"With love for my caller",confirmation:!0,selectMap(e){if(e.length>0)return e[0]}}]}get values(){return this.valuesStack[this.valuesStack.length-1]}async setValues(e,t){this.valuesStack.push(Object.assign({},this.values,e)),await t(),this.valuesStack.pop()}async text(e){return Pe("Returning a dummy text:",this.values.text),this.values.text}async confirmation(e){return Pe("Ask for user confirmation:",this.values.confirmation),this.values.confirmation}async select(e){const t=this.values.selectMap(e.values);return Pe("Pick item ",t," from ",e.values),t}async authenticate(){throw new Error("Method not implemented.")}async form(e){const t={},r=Object.keys(e.descriptors);for(const a of r){let r;const i=e.descriptors[a];switch(i.type){case"confirmation":r=this.confirmation(i);break;case"select":r=this.select(i);break;case"text":r=this.text(i)}void 0!==r&&(t[a]=await r)}return t}},exports.TestStore=We,exports.TestToast=class{show(e){Ue("Show message:",e.message)}close(e){Ue("Close toast",e)}},exports.Veramo=Re,exports.WalletError=F,exports.base64url=B,exports.deriveKey=qe,exports.didJwtVerify=z,exports.getCredentialClaims=H,exports.jwkSecret=(e=q.default.randomBytes(32))=>({kid:a.v4(),kty:"oct",k:B.encode(e)}),exports.multipleExecutions=X,exports.parseAddress=function(t){const r=t.match(/^(0x)?([\da-fA-F]{40})$/);if(null==r)throw new RangeError("incorrect address format");const a=r[2];return e.ethers.utils.getAddress("0x"+a)},exports.parseHex=function(e,t=!0){const r=e.match(/^(0x)?(([\da-fA-F][\da-fA-F])+)$/);if(null==r)throw new RangeError("wrong hex input");const a=r[2];return t?"0x"+a:a},exports.verifyDataSharingAgreementSignature=Y; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubm9kZS5janMiLCJzb3VyY2VzIjpbIi4uL3NyYy90cy91dGlscy9iYXNlNjR1cmwudHMiLCIuLi9zcmMvdHMvdXRpbHMvandzLnRzIiwiLi4vc3JjL3RzL2Vycm9ycy50cyIsIi4uL3NyYy90cy9yZXNvdXJjZS9rZXlQYWlyLXZhbGlkYXRvci50cyIsIi4uL3NyYy90cy91dGlscy9jcmVkZW50aWFsLWNsYWltcy50cyIsIi4uL3NyYy90cy91dGlscy9kaWQtand0LXZlcmlmeS50cyIsIi4uL3NyYy90cy91dGlscy9kYXRhLXNoYXJpbmctYWdyZWVtZW50LXZhbGlkYXRpb24udHMiLCIuLi9zcmMvdHMvdXRpbHMvbXVsdGlwbGUtZXhlY3V0aW9ucy50cyIsIi4uL3NyYy90cy9yZXNvdXJjZS9jb250cmFjdC12YWxpZGF0b3IudHMiLCIuLi9zcmMvdHMvcmVzb3VyY2UvZGF0YUV4Y2hhbmdlLXZhbGlkYXRvci50cyIsIi4uL3NyYy90cy9yZXNvdXJjZS9ucnAtdmFsaWRhdG9yLnRzIiwiLi4vc3JjL3RzL3Jlc291cmNlL29iamVjdC12YWxpZGF0b3IudHMiLCIuLi9zcmMvdHMvcmVzb3VyY2UvdmMtdmFsaWRhdG9yLnRzIiwiLi4vc3JjL3RzL3Jlc291cmNlL3Jlc291cmNlLXZhbGlkYXRvci50cyIsIi4uL3NyYy90cy91dGlscy9kaXNwbGF5LWRpZC50cyIsIi4uL3NyYy90cy92ZXJhbW8vZXRoci1kaWQtcmVzb2x2ZXJfRE8tTk9ULUVESVQvaGVscGVycy50cyIsIi4uL3NyYy90cy92ZXJhbW8vZXRoci1kaWQtcmVzb2x2ZXJfRE8tTk9ULUVESVQvY29uZmlndXJhdGlvbi50cyIsIi4uL3NyYy90cy92ZXJhbW8vZXRoci1kaWQtcmVzb2x2ZXJfRE8tTk9ULUVESVQvY29udHJvbGxlci50cyIsIi4uL3NyYy90cy92ZXJhbW8vZXRoci1kaWQtcmVzb2x2ZXJfRE8tTk9ULUVESVQvbG9nUGFyc2VyLnRzIiwiLi4vc3JjL3RzL3ZlcmFtby9ldGhyLWRpZC1yZXNvbHZlcl9ETy1OT1QtRURJVC9yZXNvbHZlci50cyIsIi4uL3NyYy90cy92ZXJhbW8vZXRoci1kaWQtbXVsdGlwbGUtcnBjLXByb3ZpZGVyLnRzIiwiLi4vc3JjL3RzL3V0aWxzL2FsbC1lcXVhbC50cyIsIi4uL3NyYy90cy92ZXJhbW8vZGlkLXdhbGxldC1zdG9yZS50cyIsIi4uL3NyYy90cy92ZXJhbW8va2V5LXdhbGxldC1tYW5hZ2VtZW50LXN5c3RlbS50cyIsIi4uL3NyYy90cy92ZXJhbW8va2V5LXdhbGxldC1zdG9yZS50cyIsIi4uL3NyYy90cy92ZXJhbW8vdmVyYW1vLnRzIiwiLi4vc3JjL3RzL3V0aWxzL3NodWZmbGUtYXJyYXkudHMiLCIuLi9zcmMvdHMvd2FsbGV0L2Jhc2Utd2FsbGV0LnRzIiwiLi4vc3JjL3RzL3Rlc3QvZGlhbG9nLnRzIiwiLi4vc3JjL3RzL2ltcGwvc3RvcmVzL2ZpbGUtc3RvcmUudHMiLCIuLi9zcmMvdHMvaW1wbC9zdG9yZXMvcmFtLXN0b3JlLnRzIiwiLi4vc3JjL3RzL3Rlc3QvdG9hc3QudHMiLCIuLi9zcmMvdHMvaW1wbC9kaWFsb2dzL251bGwtZGlhbG9nLnRzIiwiLi4vc3JjL3RzL2ltcGwvdG9hc3QvY29uc29sZS10b2FzdC50cyIsIi4uL3NyYy90cy91dGlscy9nZW5lcmF0ZS1zZWNyZXQudHMiLCIuLi9zcmMvdHMvdXRpbHMvcGFyc2VBZGRyZXNzLnRzIiwiLi4vc3JjL3RzL3V0aWxzL3BhcnNlSGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpudWxsLCJuYW1lcyI6WyJiYXNlNjRVcmwiLCJlbmNvZGUiLCJidWYiLCJ0b1N0cmluZyIsInJlcGxhY2UiLCJkZWNvZGUiLCJzdHIiLCJCdWZmZXIiLCJmcm9tIiwiZGVjb2RlSldTIiwiandzIiwiZW5jb2RpbmciLCJwYXJ0cyIsIm1hdGNoIiwiaGVhZGVyIiwiSlNPTiIsInBhcnNlIiwiYmFzZTY0dXJsIiwicGF5bG9hZCIsInNpZ25hdHVyZSIsImRhdGEiLCJFcnJvciIsIldhbGxldEVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwiaHR0cERhdGEiLCJzdXBlciIsInRoaXMiLCJjb2RlIiwic3RhdHVzIiwia2V5UGFpclZhbGlkYXRvciIsImFzeW5jIiwicmVzb3VyY2UiLCJ2ZXJhbW8iLCJlcnJvcnMiLCJrZXlQYWlyIiwicHVibGljSndrIiwicHJpdmF0ZUp3ayIsInZlcmlmeUtleVBhaXIiLCJwYXJzZUp3ayIsImlkIiwiZGlnZXN0IiwiZXJyb3IiLCJwdXNoIiwiZ2V0Q3JlZGVudGlhbENsYWltcyIsInZjIiwiT2JqZWN0Iiwia2V5cyIsImNyZWRlbnRpYWxTdWJqZWN0IiwiZmlsdGVyIiwiY2xhaW0iLCJkaWRKd3RWZXJpZnkiLCJqd3QiLCJleHBlY3RlZFBheWxvYWRDbGFpbXMiLCJkZWNvZGVkSnd0IiwidmVyaWZpY2F0aW9uIiwidW5kZWZpbmVkIiwiZXhwZWN0ZWRQYXlsb2FkTWVyZ2VkIiwiXyIsImNsb25lRGVlcCIsImRlZmF1bHRzRGVlcCIsImRpZmZzIiwib2JqMSIsIm9iajIiLCJyZWR1Y2UiLCJyZXN1bHQiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpc0VxdWFsIiwicmVzdWx0S2V5SW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwibGVuZ3RoIiwiam9pbiIsInJlc29sdmVyIiwicmVzb2x2ZSIsImRpZFVybCIsImFnZW50IiwicmVzb2x2ZURpZCIsInZlcmlmeUpXVCIsInZlcmlmeURhdGFTaGFyaW5nQWdyZWVtZW50U2lnbmF0dXJlIiwiYWdyZWVtZW50Iiwic2lnbmVyIiwic2lnbmF0dXJlcyIsInZlcmlmaWVkU2lnbmF0dXJlIiwiZXhwZWN0ZWRTaWduZXIiLCJwYXJ0aWVzIiwicHJvdmlkZXJEaWQiLCJwcm92aWRlclNpZ25hdHVyZSIsImNvbnN1bWVyRGlkIiwiY29uc3VtZXJTaWduYXR1cmUiLCJpc3MiLCJkZWJ1ZyIsIkRlYnVnIiwiYmFzZW5hbWUiLCJfX2ZpbGVuYW1lIiwibXVsdGlwbGVFeGVjdXRpb25zIiwib3B0aW9ucyIsImV4ZWN1dG9ycyIsImZuTmFtZSIsImFyZ3MiLCJzdWNjZXNzUmF0ZSIsIm1pblJlc3VsdHMiLCJNYXRoIiwiY2VpbCIsIl90aW1lb3V0IiwidGltZW91dCIsIm9ic2VydmFibGUiLCJPYnNlcnZhYmxlIiwic3Vic2NyaWJlciIsInN1YnNjcmliZXJTRmluaXNoZWQiLCJmb3JFYWNoIiwiZXhlY3V0b3IiLCJmbiIsInJldHVyblByb21pc2UiLCJyZXN1bHRPclByb21pc2UiLCJwcm9taXNlIiwidGhlbiIsIm5leHQiLCJjYXRjaCIsImVyciIsImZpbmFsbHkiLCJjb21wbGV0ZSIsInBpcGUiLCJidWZmZXJDb3VudCIsInJlc3VsdHMiLCJQcm9taXNlIiwicmVqZWN0Iiwic3Vic2NyaXB0aW9uIiwic3Vic2NyaWJlIiwidiIsInNldFRpbWVvdXQiLCJ1bnN1YnNjcmliZSIsImNvbnRyYWN0VmFsaWRhdG9yIiwiZGF0YVNoYXJpbmdBZ3JlZW1lbnQiLCJzY2hlbWFWYWxpZGF0aW9uRXJyb3JzIiwidmFsaWRhdGVEYXRhU2hhcmluZ0FncmVlbWVudFNjaGVtYSIsImRlYUVycm9ycyIsInZhbGlkYXRlRGF0YUV4Y2hhbmdlQWdyZWVtZW50IiwiZGF0YUV4Y2hhbmdlQWdyZWVtZW50Iiwicm9sZSIsIm9yaWciLCJkZXN0IiwiaWRlbnRpdHkiLCJkYXRhRXhjaGFuZ2VWYWxpZGF0b3IiLCJucnBWYWxpZGF0b3IiLCJkZWNvZGVkUHJvb2YiLCJqd3NEZWNvZGUiLCJleGNoYW5nZSIsImRlRXJyb3JzIiwidmFsaWRhdGVEYXRhRXhjaGFuZ2UiLCJwYXJlbnRSZXNvdXJjZSIsInN0cmluZ2lmeSIsIm5hbWUiLCJwcm9vZlR5cGUiLCJvYmplY3RWYWxpZGF0b3IiLCJ2ZXJpZmlhYmxlQ2xhaW1WYWxpZGF0b3IiLCJzdWJqZWN0IiwiaGFuZGxlTWVzc2FnZSIsInJhdyIsInByb29mIiwiZXgiLCJSZXNvdXJjZVZhbGlkYXRvciIsInZhbGlkYXRvcnMiLCJpbml0VmFsaWRhdG9ycyIsInNldFZhbGlkYXRvciIsInZhbGlkYXRvciIsInZhbGlkYXRpb24iLCJ2YWxpZGF0ZWQiLCJ0eXBlIiwiZGlzcGxheURpZCIsImRpZCIsInNwbGl0dGVkRGlkIiwic3BsaXQiLCJhZGRyZXNzIiwicG9wIiwic2xpY2UiLCJpZGVudGlmaWVyTWF0Y2hlciIsIkRFRkFVTFRfUkVHSVNUUllfQUREUkVTUyIsInZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzIiwiZXZlbnROYW1lcyIsImxlZ2FjeUF0dHJUeXBlcyIsInNpZ0F1dGgiLCJ2ZXJpS2V5IiwiZW5jIiwibGVnYWN5QWxnb01hcCIsIlNlY3AyNTZrMVZlcmlmaWNhdGlvbktleTIwMTgiLCJFY2RzYVNlY3AyNTZrMVZlcmlmaWNhdGlvbktleTIwMTkiLCJFZDI1NTE5U2lnbmF0dXJlQXV0aGVudGljYXRpb24yMDE4IiwiRWQyNTUxOVZlcmlmaWNhdGlvbktleTIwMTgiLCJTZWNwMjU2azFTaWduYXR1cmVBdXRoZW50aWNhdGlvbjIwMTgiLCJSU0FWZXJpZmljYXRpb25LZXkyMDE4IiwiWDI1NTE5S2V5QWdyZWVtZW50S2V5MjAxOSIsInN0cmluZ1RvQnl0ZXMzMiIsImJ1ZmZTdHIiLCJyZXBlYXQiLCJpbnRlcnByZXRJZGVudGlmaWVyIiwiaWRlbnRpZmllciIsIm5ldHdvcmsiLCJzdGFydHNXaXRoIiwiY29tcG9uZW50cyIsImNvbXB1dGVBZGRyZXNzIiwicHVibGljS2V5IiwiZ2V0QWRkcmVzcyIsImtub3duSW5mdXJhTmV0d29ya3MiLCJtYWlubmV0Iiwicm9wc3RlbiIsInJpbmtlYnkiLCJnb2VybGkiLCJrb3ZhbiIsImtub3duTmV0d29ya3MiLCJyc2siLCJhcnRpc190MSIsImFydGlzX3MxIiwibWF0aWMiLCJtYXRpY211bSIsIkVycm9ycyIsImNvbmZpZ3VyZU5ldHdvcmtzV2l0aEluZnVyYSIsInByb2plY3RJZCIsImNvbmZpZ3VyZU5ldHdvcmtzIiwibmV0d29ya3MiLCJjaGFpbklkIiwicHJvdmlkZXIiLCJJbmZ1cmFQcm92aWRlciIsImdldENvbnRyYWN0Rm9yTmV0d29yayIsImNvbmYiLCJ3ZWIzIiwiY3VycmVudFByb3ZpZGVyIiwicnBjVXJsIiwiY2hhaW5JZFJhdyIsIkJpZ051bWJlciIsInRvTnVtYmVyIiwibmV0d29ya05hbWUiLCJKc29uUnBjUHJvdmlkZXIiLCJDb250cmFjdEZhY3RvcnkiLCJmcm9tU29saWRpdHkiLCJEaWRSZWdpc3RyeUNvbnRyYWN0IiwiYXR0YWNoIiwicmVnaXN0cnkiLCJjb25uZWN0IiwiY29uZmlndXJlTmV0d29yayIsIm5ldCIsIkV0aHJEaWRDb250cm9sbGVyIiwiY29udHJhY3QiLCJjaGFpbk5hbWVPcklkIiwicHJvdiIsIm5ldHdvcmtTdHJpbmciLCJibG9ja1RhZyIsImZ1bmN0aW9ucyIsImlkZW50aXR5T3duZXIiLCJjb250cm9sbGVyIiwiY3VycmVudE93bmVyIiwiZ2V0T3duZXIiLCJnZXRTaWduZXIiLCJuZXdPd25lciIsIm92ZXJyaWRlcyIsImdhc0xpbWl0IiwiZ2FzUHJpY2UiLCJhdHRhY2hDb250cmFjdCIsIm93bmVyQ2hhbmdlIiwiY2hhbmdlT3duZXIiLCJ3YWl0IiwiZGVsZWdhdGVUeXBlIiwiZGVsZWdhdGVBZGRyZXNzIiwiZXhwIiwiZGVsZWdhdGVUeXBlQnl0ZXMiLCJhZGREZWxlZ2F0ZVR4IiwiYWRkRGVsZWdhdGUiLCJyZXZva2VEZWxlZ2F0ZSIsImF0dHJOYW1lIiwiYXR0clZhbHVlIiwic2V0QXR0clR4Iiwic2V0QXR0cmlidXRlIiwicmV2b2tlQXR0cmlidXRlVFgiLCJyZXZva2VBdHRyaWJ1dGUiLCJwb3B1bGF0ZUV2ZW50TWV0YUNsYXNzIiwibG9nUmVzdWx0IiwiYmxvY2tOdW1iZXIiLCJldmVudEZyYWdtZW50IiwiaW5wdXRzIiwiVHlwZUVycm9yIiwiaW5wdXQiLCJpbmRleCIsInZhbCIsImJ5dGVzMzJ0b1N0cmluZyIsIl9ldmVudE5hbWUiLCJsb2dEZWNvZGVyIiwibG9ncyIsIm1hcCIsImxvZyIsImludGVyZmFjZSIsInBhcnNlTG9nIiwiRXRockRpZFJlc29sdmVyIiwiY29udHJhY3RzIiwiaW5mdXJhUHJvamVjdElkIiwiY29uZmlndXJlUmVzb2x2ZXJXaXRoTmV0d29ya3MiLCJuZXR3b3JrSWQiLCJjaGFuZ2VkIiwiYmxvY2tIZWlnaHQiLCJibG9jayIsImdldEJsb2NrIiwiaGVpZ2h0IiwibnVtYmVyIiwiaXNvRGF0ZSIsIkRhdGUiLCJ0aW1lc3RhbXAiLCJ0b0lTT1N0cmluZyIsImhleENoYWluSWQiLCJnZXROZXR3b3JrIiwiaGlzdG9yeSIsImNvbnRyb2xsZXJLZXkiLCJwcmV2aW91c0NoYW5nZSIsImV2ZW50cyIsImdldExvZ3MiLCJ0b3BpY3MiLCJmcm9tQmxvY2siLCJ0b0hleFN0cmluZyIsInRvQmxvY2siLCJyZXZlcnNlIiwiZXZlbnQiLCJ1bnNoaWZ0IiwibHQiLCJ3cmFwRGlkRG9jdW1lbnQiLCJub3ciLCJiYXNlRElERG9jdW1lbnQiLCJ2ZXJpZmljYXRpb25NZXRob2QiLCJhdXRoZW50aWNhdGlvbiIsImFzc2VydGlvbk1ldGhvZCIsImtleUFncmVlbWVudCIsInZlcnNpb25JZCIsIm5leHRWZXJzaW9uSWQiLCJOdW1iZXIiLCJQT1NJVElWRV9JTkZJTklUWSIsImRlYWN0aXZhdGVkIiwiZGVsZWdhdGVDb3VudCIsInNlcnZpY2VDb3VudCIsImF1dGgiLCJrZXlBZ3JlZW1lbnRSZWZzIiwicGtzIiwic2VydmljZXMiLCJ2YWxpZFRvIiwiZXZlbnRJbmRleCIsImRlbGVnYXRlIiwidmFsdWUiLCJndGUiLCJESUREZWxlZ2F0ZUNoYW5nZWQiLCJjdXJyZW50RXZlbnQiLCJFY2RzYVNlY3AyNTZrMVJlY292ZXJ5TWV0aG9kMjAyMCIsImJsb2NrY2hhaW5BY2NvdW50SWQiLCJESURBdHRyaWJ1dGVDaGFuZ2VkIiwic2VjdGlvbiIsImFsZ29yaXRobSIsInBrIiwicHVibGljS2V5SGV4IiwicHVibGljS2V5QmFzZTY0IiwicHVibGljS2V5QmFzZTU4IiwiQmFzZTU4IiwicHVibGljS2V5UGVtIiwic2VydmljZUVuZHBvaW50IiwiRElET3duZXJDaGFuZ2VkIiwib3duZXIiLCJwdWJsaWNLZXlzIiwiZGlkRG9jdW1lbnQiLCJjb25jYXQiLCJ2YWx1ZXMiLCJzZXJ2aWNlIiwicGFyc2VkIiwiX3VudXNlZCIsImZ1bGxJZCIsImRpZFJlc29sdXRpb25NZXRhZGF0YSIsImludmFsaWREaWQiLCJkaWREb2N1bWVudE1ldGFkYXRhIiwicXVlcnkiLCJxUGFyYW1zIiwicXMiLCJwYXJzZUludCIsImUiLCJ1bmtub3duTmV0d29yayIsImZsb29yIiwiZ2V0VGltZSIsImdldEJsb2NrTWV0YWRhdGEiLCJjaGFuZ2VMb2ciLCJ2ZXJzaW9uTWV0YSIsInZlcnNpb25NZXRhTmV4dCIsInVwZGF0ZWQiLCJuZXh0VXBkYXRlIiwiY29udGVudFR5cGUiLCJub3RGb3VuZCIsImJ1aWxkIiwiZXRociIsImJpbmQiLCJFdGhyRGlkTXVsdGlwbGVScGNSZXNvbHZlciIsInJlc29sdmVycyIsInByb3ZpZGVyQ29uZnMiLCJBcnJheSIsIm11bHRpUnBjT3B0aW9ucyIsIm11bHRpcHJvdmlkZXJGbkV4ZWMiLCJhcnIiLCJldmVyeSIsImRlZmF1bHQiLCJESURXYWxsZXRTdG9yZSIsIkFic3RyYWN0RElEU3RvcmUiLCJzdG9yZSIsInNldCIsImRkb3MiLCJnZXQiLCJhbGlhcyIsImRpZHMiLCJkZWxldGUiLCJLZXlXYWxsZXRNYW5hZ2VtZW50U3lzdGVtIiwiQWJzdHJhY3RLZXlNYW5hZ2VtZW50U3lzdGVtIiwia2V5V2FsbGV0Iiwia2lkIiwiY3JlYXRlQWNjb3VudEtleVBhaXIiLCJnZXRQdWJsaWNLZXkiLCJVaW50OEFycmF5IiwiZXRoZXJzIiwidXRpbHMiLCJoZXhsaWZ5Iiwic3Vic3RyIiwidThhIiwiZnJvbVN0cmluZyIsIm1lc3NhZ2VEaWdlc3QiLCJzaGEyNTYiLCJtZXNzYWdlRGlnZXN0Qnl0ZXMiLCJhcnJheWlmeSIsInNpZ25EaWdlc3QiLCJzdWJhcnJheSIsInRyYW5zYWN0aW9uIiwiciIsInMiLCJ0eCIsInRvTG93ZXJDYXNlIiwic2VyaWFsaXplVHJhbnNhY3Rpb24iLCJrZWNjYWsyNTYiLCJLZXlXYWxsZXRTdG9yZSIsIkFic3RyYWN0S2V5U3RvcmUiLCJrbXMiLCJERUZBVUxUX1BST1ZJREVSIiwiREVGQVVMVF9QUk9WSURFUlNfREFUQSIsIlZlcmFtbyIsInByb3ZpZGVyc0RhdGEiLCJkZWZhdWx0S21zIiwiZXRockRpZFJlc29sdmVyIiwid2ViRGlkUmVzb2x2ZXIiLCJ3ZWJEaWRHZXRSZXNvbHZlciIsIlJlc29sdmVyIiwicHJvdmlkZXJzIiwiV2ViRElEUHJvdmlkZXIiLCJlbnRyaWVzIiwiRXRockRJRFByb3ZpZGVyIiwiY3JlYXRlQWdlbnQiLCJwbHVnaW5zIiwiS2V5TWFuYWdlciIsIkRJRE1hbmFnZXIiLCJkZWZhdWx0UHJvdmlkZXIiLCJDcmVkZW50aWFsSXNzdWVyIiwiU2VsZWN0aXZlRGlzY2xvc3VyZSIsIk1lc3NhZ2VIYW5kbGVyIiwibWVzc2FnZUhhbmRsZXJzIiwiSnd0TWVzc2FnZUhhbmRsZXIiLCJTZHJNZXNzYWdlSGFuZGxlciIsIlczY01lc3NhZ2VIYW5kbGVyIiwiRElEUmVzb2x2ZXJQbHVnaW4iLCJnZXRQcm92aWRlciIsInNodWZmbGVBcnJheSIsImFycjIiLCJyZXQiLCJpIiwicmFuZG9tSW5kZXgiLCJyYW5kb21JbnQiLCJGaWxlU3RvcmUiLCJFdmVudEVtaXR0ZXIiLCJmaWxlcGF0aCIsImtleU9iamVjdE9yUGFzc3dvcmQiLCJkZWZhdWx0TW9kZWwiLCJwcm9jZXNzIiwidmVyc2lvbnMiLCJub2RlIiwiS2V5T2JqZWN0IiwiX3Bhc3N3b3JkIiwiaW5pdGlhbGl6ZWQiLCJpbml0Iiwib24iLCJldmVudE5hbWUiLCJsaXN0ZW5lciIsImVtaXQiLCJta2RpciIsImRpcm5hbWUiLCJyZWN1cnNpdmUiLCJkZXJpdmVLZXkiLCJtb2RlbCIsImdldE1vZGVsIiwic2V0TW9kZWwiLCJwYXNzd29yZCIsInNhbHQiLCJfcGFzc3dvcmRTYWx0IiwicmFuZG9tQnl0ZXMiLCJhbGciLCJkZXJpdmVkS2V5TGVuZ3RoIiwiZmlsZUJ1ZiIsInJlYWRGaWxlU3luYyIsImRlY3J5cHRNb2RlbCIsIndyaXRlRmlsZVN5bmMiLCJzeW5jIiwiZW5jcnlwdE1vZGVsIiwiaXYiLCJjaXBoZXIiLCJjcmVhdGVDaXBoZXJpdiIsImVuY3J5cHRlZCIsInVwZGF0ZSIsImZpbmFsIiwidGFnIiwiZ2V0QXV0aFRhZyIsImVuY3J5cHRlZE1vZGVsIiwiY2lwaGVydGV4dCIsImNvbXBhcmUiLCJkZWNpcGhlciIsImNyZWF0ZURlY2lwaGVyaXYiLCJzZXRBdXRoVGFnIiwiZGVmYXVsdFZhbHVlIiwia2V5T3JTdG9yZSIsImFzc2lnbiIsImhhcyIsIm9taXQiLCJybSIsImdldFBhdGgiLCJvcHRzIiwicmV0dXJuQnVmZmVyIiwic2NyeXB0T3B0aW9ucyIsImFsZ09wdGlvbnMiLCJOIiwicCIsIm1heG1lbSIsImtleVByb21pc2UiLCJzY3J5cHQiLCJjcmVhdGVTZWNyZXRLZXkiLCJSYW1TdG9yZSIsImNsZWFyIiwiZ2V0U3RvcmUiLCJkaWFsb2ciLCJ0b2FzdCIsInJlc291cmNlVmFsaWRhdG9yIiwiY29uZmlybWF0aW9ucyIsInByb3ZpZGVyRGF0YSIsIm5vdGlmeVVzZXIiLCJ0ZXh0IiwidGl0bGUiLCJub3RpZnlVc2VyRm4iLCJyZXNwb25zZSIsInJlY2VpcHQiLCJzaG93IiwicmVhc29uIiwic2VuZFRyYW5zYWN0aW9uIiwic3VjY2VzcyIsImlkZW50aXRpZXMiLCJkaWRNYW5hZ2VyRmluZCIsInNlbGVjdCIsImdldFRleHQiLCJTdGF0aWNKc29uUnBjUHJvdmlkZXIiLCJiYWxhbmNlIiwiZ2V0QmFsYW5jZSIsImNvbnNvbGUiLCJiYWxhbmNlcyIsImV0aGVyIiwiZm9ybWF0RXRoZXIiLCJkZXRhaWxzIiwidHJhbnNhY3Rpb25EYXRhIiwiZm9ybSIsImRlc2NyaXB0b3JzIiwidG8iLCJzaWduIiwiYWNjZXB0TXNnIiwicmVqZWN0TXNnIiwib3JkZXIiLCJub25jZSIsInBhcnNlRXRoZXIiLCJpZGVudGl0eVNpZ24iLCJjb25maXJtYXRpb24iLCJhbGwiLCJ3aXBlIiwiZGRvIiwic2RyTWVzc2FnZSIsInNkckRhdGEiLCJjYW5kaWRhdGVJZGVudGl0aWVzIiwicmVzb3VyY2VzIiwicmVxdWlyZWRDbGFpbSIsImNsYWltcyIsImZpbmQiLCJjbGFpbVR5cGUiLCJjYW5kaWRhdGVJZGVudGl0eSIsImNhbmRpZGF0ZUNsYWltIiwiY3JlZGVudGlhbHMiLCJ2YWxpZElkZW50aXRpZXMiLCJlc3NlbnRpYWxDbGFpbXMiLCJlc3NlbnRpYWwiLCJ2YWxpZCIsImVzc2VudGlhbENsYWltIiwic2VsZWN0ZWREaWQiLCJ2YWxpZERpZHMiLCJpbmNsdWRlcyIsInNlbGVjdGVkSWRlbnRpdHkiLCJkaXNjbG9zdXJlIiwicHJldiIsImNyZWRlbnRpYWwiLCJpc3N1ZXIiLCJnZXRDb250ZXh0IiwiYWxsb3dDYW5jZWwiLCJtaXNzaW5nRXNzZW50aWFscyIsImNvbnRpbnVlU2VsZWN0aXZlRGlzY2xvc3VyZSIsImNyZWF0ZVZlcmlmaWFibGVQcmVzZW50YXRpb24iLCJwcmVzZW50YXRpb24iLCJob2xkZXIiLCJ2ZXJpZmllciIsInZlcmlmaWFibGVDcmVkZW50aWFsIiwicmVxdWVzdCIsInByb29mRm9ybWF0Iiwic2F2ZSIsImdldEtleVdhbGxldCIsImZ1bmN0aW9uTWV0YWRhdGEiLCJxdWVyeVBhcmFtZXRlcnMiLCJyZXF1ZXN0Qm9keSIsImdldElkZW50aXRpZXMiLCJkaWRNYW5hZ2VyQ3JlYXRlIiwic2VsZWN0SWRlbnRpdHkiLCJwYXRoUGFyYW1ldGVycyIsImRpZE1hbmFnZXJHZXQiLCJrZXlNYW5hZ2VyU2lnbkV0aFRYIiwia2V5TWFuYWdlclNpZ25KV1QiLCJqd3NEYXRhVG9TaWduIiwiandzU2lnbklucHV0IiwidHlwIiwiaWF0IiwicGljayIsImFkZHJlc3NlcyIsInJlc291cmNlc01hcCIsImdldFJlc291cmNlcyIsImdldFJlc291cmNlIiwicXVlcmllcyIsImV4dHJhQ29uc2VudCIsImZpbHRlcnMiLCJjb25zZW50VGV4dCIsInJlcXVlc3RDb25maXJtYXRpb24iLCJkZWxldGVSZXNvdXJjZSIsImRpZE1hbmFnZXJEZWxldGUiLCJ1dWlkIiwicGFyZW50SWQiLCJrZXlQYWlyUmVzb3VyY2UiLCJlcnJvcjIiLCJ2YWxpZGF0ZSIsImVycm9yTXNnIiwiZGF0YU9mZmVyaW5nRGVzY3JpcHRpb24iLCJkYXRhT2ZmZXJpbmdJZCIsInNldFJlc291cmNlIiwiZGF0YUV4Y2hhbmdlIiwiY2lwaGVyYmxvY2tEZ3N0IiwiYmxvY2tDb21taXRtZW50Iiwic2VjcmV0Q29tbWl0bWVudCIsInllcyIsImNvbnRleHQiLCJubyIsInllc1RvQWxsIiwiZXhjaGFuZ2VJZCIsIm9wdGlvbiIsInNob3dJbnB1dCIsImRhdGFFeGNoYW5nZVJlc291cmNlIiwic2RyUmF3IiwidnAiLCJzZWxlY3RDcmVkZW50aWFsc0ZvclNkciIsImV4ZWN1dGVUcmFuc2FjdGlvbiIsImRpZEp3dFZlcmlmeUZuIiwiY2xvc2UiLCJ0b2FzdElkIiwidmFsdWVzU3RhY2siLCJzZWxlY3RNYXAiLCJjYiIsImZvcm1WYWx1ZSIsImRlc2NyaXB0b3IiLCJzZWNyZXQiLCJjcnlwdG8iLCJ1dWlkdjQiLCJrdHkiLCJrIiwiYSIsImhleE1hdGNoIiwiUmFuZ2VFcnJvciIsImhleCIsInByZWZpeDB4Il0sIm1hcHBpbmdzIjoiODRDQVFBLElBQWVBLEVBQUEsQ0FDYkMsT0FUY0MsR0FDUEEsRUFBSUMsU0FBUyxVQUFVQyxRQUFRLEtBQU0sSUFBSUEsUUFBUSxNQUFPLEtBQUtBLFFBQVEsTUFBTyxLQVNuRkMsT0FOY0MsR0FDUEMsT0FBT0MsS0FBS0YsRUFBSyxXQzBCVixTQUFBRyxFQUFXQyxFQUFhQyxHQUN0QyxNQUFNQyxFQUFRRixFQUFJRyxNQUFNLDBEQUN4QixHQUFhLE1BQVRELEVBQ0YsTUFBTyxDQUNMRSxPQUFRQyxLQUFLQyxNQUFNQyxFQUFVWixPQUFPTyxFQUFNLElBQUlULFNBQVMsV0FDdkRlLFFBQVNILEtBQUtDLE1BQU1DLEVBQVVaLE9BQU9PLEVBQU0sSUFBSVQsU0FBU1EsSUFDeERRLFVBQVdQLEVBQU0sR0FDakJRLEtBQU0sR0FB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